[size=medium]今天在定义bean的时候遇到循环引用问题,
看看网上都是怎么解决,
1.是在循环引用中bean时直接引用接口的实现类.
2.是在再循环引用中在为一个接口创建两个bean的实例,
就像接力一样,再多创建出来个人
但这种情况是有条件的.
(原文说两个业务服务互相调用的路径是不相交的)
我理解的是这两个bean是不同的接口的实例.
3.覆盖源码了:
有一个参数setAllowRawInjectionDespiteWrapping,默认是false,将其设成true即可。
代码如下:[/size]
[size=medium] 然后在web.xml配置启用此context,[/size]
看看网上都是怎么解决,
1.是在循环引用中bean时直接引用接口的实现类.
2.是在再循环引用中在为一个接口创建两个bean的实例,
就像接力一样,再多创建出来个人
但这种情况是有条件的.
(原文说两个业务服务互相调用的路径是不相交的)
我理解的是这两个bean是不同的接口的实例.
3.覆盖源码了:
有一个参数setAllowRawInjectionDespiteWrapping,默认是false,将其设成true即可。
代码如下:[/size]
public class MyWebApplicationContext extends XmlWebApplicationContext {
@Override
protected DefaultListableBeanFactory createBeanFactory() {
DefaultListableBeanFactory beanFactory = super.createBeanFactory();
beanFactory.setAllowRawInjectionDespiteWrapping(true);
return beanFactory;
}
}
[size=medium] 然后在web.xml配置启用此context,[/size]
<context-param>
<param-name>contextClass</param-name>
<param-value>xxx.MyWebApplicationContext</param-value>
</context-param>