我想動態註冊多個對象作爲Spring bean。是可能的,沒有BeanFactoryPostProcessor
?如何在Spring Java Config中將許多對象註冊爲bean?
@Configuration public class MyConfig {
@Bean A single() { return new A("X");}
@Bean List<A> many() { return Arrays.asList(new A("Y"), new A("Z"));}
private static class A {
private String name;
public A(String name) { this.name = name;}
@PostConstruct public void print() {
System.err.println(name);
}
}
}
實際輸出僅示出一個豆工作:
X
預期:
X YŽ
春4.3.2.RELEASE
其實你有2種豆......指定'型A'的'single'和一個豆一種豆名爲'型List'的'many' 。你的內部(列表中的)不是bean,也不是由Spring管理的。你想要的東西不能直接使用。 –
@ M.Deinum,謝謝。任何提示如何讓它超越框? – michaldo
它會添加什麼。在示例中,它只會增加複雜性,因爲您現在添加了另一種添加Bean的方式。你仍然需要建造他們。如果要添加bean,可以使用「FactoryBean」或創建自己的BeanFactoryPostProcessor或BeanDefinitionRegistryPostProcessor來添加bean的定義。 –