gpt4 book ai didi

java - 如何在 Spring 中连接相互依赖的 bean?

转载 作者:IT老高 更新时间:2023-10-28 13:51:01 25 4
gpt4 key购买 nike

我想声明两个 bean 并使用 Spring 依赖注入(inject)实例化它们?

<bean id="sessionFactory" class="SessionFactoryImpl">
<property name="entityInterceptor" ref="entityInterceptor"/>
</bean>

<bean id="entityInterceptor" class="EntityInterceptorImpl">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>

但是 Spring 抛出一个异常说“当前正在创建的 FactoryBean 从 getObject 返回 null”

为什么相互依赖的 bean 布线在这里不起作用?我应该在任何地方指定延迟属性绑定(bind)吗?

最佳答案

不幸的是容器初始化在 Spring 中的工作方式,一个 bean 只能在完全初始化后注入(inject)另一个 bean。在您的情况下,您有一个循环依赖关系,它会阻止初始化任何一个 bean,因为它们相互依赖。为了解决这个问题,您可以在其中一个 bean 中实现 BeanFactoryAware,并使用 beanFactory.getBean("beanName") 获取对另一个 bean 的引用。

关于java - 如何在 Spring 中连接相互依赖的 bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/425049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com