java - Spring:Bean B 加载完成后如何初始化 Bean A?

标签 java spring

我有一个 BeanA,它的构造函数需要 BeanB。 BeanB 实例化(及其属性设置)后,我想调用 BeanB.init()

有没有办法做到这一点?

另一种方法是在创建上下文中的所有 bean 之后调用 BeanB.init()。

干杯!

最佳答案

您可以在 applicationContext.xml 中使用 init-method 来指定一个初始化方法。如果你想让一个 bean 在另一个之后实例化,你可以使用 depends-on,即使任何 ref 元素(在这个例子中 constructor-args) 将隐式放置依赖项。

这将首先使用 init 方法初始化 Bean B,完成后,将其用作 A 的构造函数参数。

<!-- Bean B -->
<bean id="beanB" 
    class="classB"
    init-method="init"
/>

<!-- Bean A -->
<bean id="beanA" 
    class="classA"
    init-method="anotherInit">
        <constructor-arg ref="beanB"/>
    </bean>

关于java - Spring:Bean B 加载完成后如何初始化 Bean A?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7499753/

相关文章:

Spring :设置语言环境

java - CompletableFuture 执行中出现意外的空值

java - hibernate和oracle的批量插入模式: seems to be dropping back to slow mode silently

java - Gson 可以使用类生成器反序列化吗?

java - "java.lang.IllegalStateException: The WebApplicationContext for test context [...] must be configured with a MockServletContext."

java - Spring - Hibernate Multi-Tenancy 问题

java - 无法在第三方 tomcat 服务器上正确访问 Spring 应用程序

java - 如何正确改变Java中数组元素的值?

Java 命令行参数未读取

java - Spring ThreadPoolTask​​Executor 的线程计数始终为 1