`
zhanshenny
  • 浏览: 264435 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring循环依赖问题

阅读更多
转载请注明出处(Cooper的专栏    http://blog.csdn.net/cooper_lyt)

Spring是个成熟的框架,我就不废话了,说下遇到的问题和解决方法。。不定时更新



    循环依赖,就是说类A依赖与B,而B又依赖于A,这种情况本不应该发生,发生这种情况是因为我在项目中使用的工厂模式,用一个工厂来生产一些管理器类,而某一管理器要需要另一管理器提供支持所以就要引用工厂类,而这个管理器和这个工厂就出现了循环依赖(项目中实际的逻辑比这个更复杂,因为我在项目中实现的了一个工作流数据POJO类延迟加载的功能像hibernate 那样在调用一个类的集合属性时才到要shark中去查找数据而不是在new里加载,并且这个数据类的集合属性并不包含加载数据的代码只是普通的Bean方法get,set),查了一下spring的doc,解决方法很简单加个

lazy-init="true"就可以了,及在初始化时不建立类而是在使用时才建立。

        <bean id="wfDataProxyFactory"
            class="com.dgsoft.wf.data.proxy.WfDataProxyFactory"
            lazy-init="true">
            <!-- manager need -->
            <property name="processMgr">
                <ref bean="processMgr" />
            </property>
            <property name="processInstanceMgr">
                <ref bean="processInstanceMgr" />
            </property>
            <property name="workMgr">
                <ref bean="workMgr" />
            </property>
        </bean>
分享到:
评论

相关推荐

    Spring源码最难问题:当Spring AOP遇上循环依赖.docx

    Spring源码中最难的问题之一是循环依赖问题,当Spring AOP遇上循环依赖时,该如何解决? Spring通过三级缓存机制解决循环依赖的问题。 在Spring中,bean的实例化过程中,会先尝试从三级缓存中获取bean,这也是...

    Spring循环依赖debug源码图

    Spring循环依赖debug源码图

    Spring循环依赖案例问题详解.docx

    然而,Spring通过其强大的依赖注入机制,能够处理大部分场景下的循环依赖问题,但并非所有情况都能解决。 首先,让我们看看Spring如何处理单例bean(Singleton Beans)的循环依赖。在默认情况下,Spring采用三级...

    Spring5.0源码深度解析之SpringBean循环依赖问题解决方案.docx

    Spring5.0源码深度解析之SpringBean循环依赖问题解决方案 Spring5.0源码深度解析之SpringBean循环依赖问题解决方案是指在Spring框架中如何解决Bean的循环依赖问题。在Spring框架中,Bean的循环依赖指的是两个或多个...

    理解Spring循环依赖.docx

    Spring的循环依赖处理机制是其依赖注入的核心功能之一,它使得开发者能够编写松耦合的代码,而无需过多关注依赖关系可能导致的问题。然而,了解其限制并合理设计bean之间的依赖关系,是避免潜在问题的关键。在编程时...

    Springbean循环依赖问题,与解决方案。.docx

    SpringBean 循环依赖问题与解决方案 SpringBean 循环依赖问题是指在 Spring 框架中,多个 Bean 之间存在相互依赖关系,导致 Bean 创建失败或无法正确注入的问题。这种问题常见于大型项目中,特别是在复杂的业务系统...

    Spring循环依赖.vsdx

    Spring循环依赖.vsdx

    Spring 解决循环依赖的 3 种方式.docx

    但如果开发者明确指定允许循环依赖,Spring会在每次请求prototype Bean时进行实例化和依赖注入,这可能导致每次请求都会创建一个新的Bean实例,从而避免了循环引用的问题。 总结来说,Spring通过“三级缓存”和“半...

    spring bean循环依赖时序图

    spring bean循环依赖时序图详细的描述了spring的循环依赖关系,帮我们快速了解spring是如何优雅的进行处理的

    简单了解Spring循环依赖解决过程

    Spring 循环依赖解决过程详解 Spring 框架中循环依赖是一个常见的问题,它指的是两个或多个 Bean 之间存在的相互依赖关系,例如 A ...Spring 通过三级缓存机制解决了循环依赖问题,实现了正确的 Bean 实例化和初始化。

    3. 循环依赖问题(三级缓存).xmind

    《spring源码之循环依赖和三级缓存》整理,本人水平有限,从网上找的资料整合之后做的,请辩证的看待其中内容。

    Spring三级缓存解决循环依赖.pdf

    Spring三级缓存解决循环依赖.pdf

    Spring使用时的循环依赖问题详解.docx

    Spring通过其强大的依赖注入机制,大部分情况下能够自动解决单例bean之间的循环依赖问题,但并非对所有类型的循环依赖都有效。 首先,我们来看一个简单的例子: ```java @Configuration @ComponentScan public ...

    spring多个动态代理导致循环依赖报错问题解决

    了解并熟练掌握以上策略,可以帮助我们更有效地应对Spring中的动态代理导致的循环依赖问题。 为了更好地理解并实践这些解决方案,你可以参考提供的压缩包文件`demo-spring`中的示例代码,通过实际操作来加深印象。...

    Spring循环依赖的解决办法,你真的懂了吗

    Spring循环依赖的解决办法 Spring框架中,循环依赖是指两个或多个Bean相互引用,形成一个环。这篇文章主要介绍了Spring循环依赖的解决办法。在Spring中,循环依赖可以分为两种场景:构造器的循环依赖和属性的循环...

    基于SpringBoot构造器注入循环依赖及解决方式

    这样,依赖直到被真正使用时才会被注入,避免了构造器阶段的循环依赖问题。在`CircularDependencyA`中添加setter方法,并移除构造器注入,可以解决这个问题。 总结来说,循环依赖是Spring Boot应用中需要注意的问题...

    Spring如何解决循环依赖的问题

    Spring框架在处理依赖注入时,会遇到一个棘手的问题,那就是循环依赖。循环依赖是指两个或多个bean之间形成一个依赖闭环,导致它们无法被正常初始化。本文将详细讲解Spring如何解决这一问题,以及为何它仅支持单例...

    spring循环依赖策略解析

    Spring循环依赖策略解析 在Spring框架中,循环依赖是指多个Bean之间的依赖关系形成一个闭环的情况。例如,A依赖B,B依赖C,C依赖A,这种情况下,如果A依赖B,那么在创建A的过程中会去创建B,在创建B的过程中又发现B...

    探秘Spring框架解决循环依赖的高效策略

    Spring框架在处理循环依赖问题上展现出了其卓越的性能和灵活性。循环依赖是软件设计中常见的问题,特别是在大型Java企业应用中,它可能导致系统僵死或者运行时异常。Spring通过三级缓存机制和AOP代理巧妙地解决了这...

    Spring循环依赖的三种方式(推荐)

    Spring 循环依赖的三种方式 Spring 循环依赖是指在 ...Spring 提供了多种方式来解决循环依赖问题,包括构造器参数循环依赖、setter 方法循环依赖和使用 @Autowired 注解。开发者可以根据实际情况选择合适的解决方案。

Global site tag (gtag.js) - Google Analytics