我正在开发一个基于Spring的应用程序,我有一个要求,我希望在任何其他bean之前构造一个特定的bean。
如何指定在Spring中构造bean的顺序?
为了澄清,我希望在其他bean的构造函数之前执行特定bean的构造函数+ post构造。
答案 0 :(得分:4)
您正在寻找depends-on。指定的任何bean都保证在带有注释的bean之前由容器创建。
@Bean
@DependsOn({"firstBean", "secondBean"})
class MyBean {}
您还可以在xml上指定:
<bean id="myBean" class="MyBean" depends-on="firstBean, secondBean">
</bean>
答案 1 :(得分:1)
在方法上利用@PostConstruct
注释可能会有所帮助(如果您控制bean本身的代码)。
@PostContstruct
这样,你不应该(至少我没见过它)需要任何bean初始化的顺序。一切都将被创建,注入,然后在Spring友好的生命周期中开始。
仅供参考,如果需要,还可以@PreDestroy
进行清理。
这里的简单示例:https://www.mkyong.com/spring/spring-postconstruct-and-predestroy-example/