java - 延迟初始化一个由另一个延迟初始化 bean 引用的 bean

标签 java spring lazy-initialization

我有一个延迟初始化的 bean,并且有几个要设置的参数和属性。

  <bean id="abc" class="a.b.c.abc" lazy-init="true">
        <constructor-arg ref="qwert" />
        <property name="aImplementations">
            <list>
                <ref bean="newBean" />
            </list>
        </property>
    </bean>

newBean定义为 <bean id="newBean" class="a.b.c.newBean" lazy-init="true" init-method="init" />

但是惰性 bean 被初始化并调用 init() 方法。

如果我删除bean 'abc'并保留 newBean ,newBean类的init()方法没有被调用。

可能是什么原因?我在 Google 上进行了搜索,但没有找到任何帮助。

最佳答案

只有当一个bean没有被任何其他bean引用或者它被另一个延迟初始化的bean引用时,它才会被延迟初始化。您的 bean 'abc' 是非惰性的,在构建此 bean 时,它必须将 newBean 插入 abc。

关于java - 延迟初始化一个由另一个延迟初始化 bean 引用的 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13234399/

相关文章:

java - 如何创建获取 4 个数字并返回最大数字的 max 方法?

java - 使用 Java 中的串行通信从 Arduino 写入和读取数据

java - Spring - 切换要使用的SchedulerFactoryBean

java - Spring Mongo 条件查询两次相同的字段

java - 无法加载 JDBC 驱动程序。为什么? ( Spring , hibernate )

java - ThreadPoolExecutor 中的死锁

java - 如何控制表单刷新时的提交

c# - 属性初始化和 'this'

swift - 惰性初始化和保留周期

java - 如何从 Hibernate session 中删除不需要的实体?