[英]How force spring to create all declared beans at once their configuration class was discovered?
我有带有几个配置类的Web应用程序。
@Configuration
public class ConfigA {
@Bean(name = "bean_1")
public MyBean getBean1() { /* Some code is here */ }
@Bean(name = "bean_2")
public MyBean getBean2() { /* Some code is here */ }
/* ... */
@Bean(name = "bean_99")
public MyBean getBean99() { /* Some code is here */ }
}
@Configuration
public class ConfigB {
public OtherBean getOtherBean() { /* Some code is here */ }
}
调用构造函数时,类MyBean的每个bean在某个全局上下文中注册。 并且OtherBean bean使用此全局上下文来获取MyBean类的所有实例。 但是spring早于几个MyBean bean创建了OtherBean,但我不知道如何更改此行为。
PS:
添加@Autowired List列表; 字段到您的配置? 这会将所有注册的bean注入到列表中,因此希望spring以某种方式检查这些bean在哪里创建。
您可以在此处添加@Lazy
,这是javadoc
如果@Component或@Bean定义上不存在此批注,则会进行急切的初始化。 如果存在并设置为true,则@Bean或@Component不会被初始化,直到被另一个bean引用或从封闭的BeanFactory中显式检索。 如果存在并且设置为false,则将在执行启动单例初始化的bean工厂时实例化bean。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.