JAVA项目开发笔记(8):Spring部分 循环依赖

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

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

 

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

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

  1.     <bean id="wfDataProxyFactory"
  2.         class="com.dgsoft.wf.data.proxy.WfDataProxyFactory"
  3.         lazy-init="true">
  4.         <!-- manager need -->
  5.         <property name="processMgr">
  6.             <ref bean="processMgr" />
  7.         </property>
  8.         <property name="processInstanceMgr">
  9.             <ref bean="processInstanceMgr" />
  10.         </property>
  11.         <property name="workMgr">
  12.             <ref bean="workMgr" />
  13.         </property>
  14.     </bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值