如何控制 Spring 中 bean init-method 调用的顺序?
Posted
技术标签:
【中文标题】如何控制 Spring 中 bean init-method 调用的顺序?【英文标题】:How to control order of bean init-method invocation in Spring? 【发布时间】:2012-03-11 20:18:34 【问题描述】:假设我有 bean,应该在另一个 bean 的 init-method 之后调用哪个 init-method 或构造函数。可能吗?
【问题讨论】:
【参考方案1】:如果您使用 xml 配置,请使用 @DependsOn
注释或依赖属性。
【讨论】:
spring 是否也支持javax.ejb.DependsOn
注释?对应spring注解的文档可以在docs.spring.io/spring/docs/current/javadoc-api/org/…找到【参考方案2】:
您可以在第二个 bean 上使用 de depends-on
属性。
参考:http://static.springsource.org/spring/docs/1.2.x/reference/beans.html#beans-factory-dependson
【讨论】:
【参考方案3】:在 Spring 上下文 XML 文件中使用 depends-on
属性:
<bean id="beanOne" class="ExampleBean" depends-on="manager">
<property name="manager"><ref local="manager"/></property>
</bean>
或 @DependsOn
如果您使用注解,则在 bean 上注解。
【讨论】:
@fasttooth,好问题。我不知道确切的答案。它可能有效,因为据我所知,spring 在接线后调用所有后构造方法,所以它可能使用与接线相同的顺序。但我不确定。以上是关于如何控制 Spring 中 bean init-method 调用的顺序?的主要内容,如果未能解决你的问题,请参考以下文章
如果你还不知道如何控制springboot中bean的加载顺序,那你一定要看此篇