spring proxyTargetClass 动态代理
今天做两个项目的集成,主项目单独跑没问题,子项目单独跑没问题,集成到一起就挂了。报错信息为:
?
从网上搜索错误说proxyTargetClass需要配置为true,我们也配置了。
参考:http://blog.chinaunix.net/u/20045/showart_1019030.html
?
后来听说主项目没有使用我们的配置方法。而是使用了:
?
?
?
再后来看到了如下的文章:ProxyFactoryBean什么时候需要配置proxyTargetClass
?
说是spring动态代理使用cglib的时候会通过类所实现的接口动态代理生成类。这下去看那个报错的类,他实现了接口,但是其他地方使用的时候却是直接使用了这个类。所以动态代理生成的类,是会产生类型不匹配的问题。所以问题找到。
?
但是仍然有遗留的问题:
1.为什么子项目单独是可以运行的?
2.为什么我们最后配置完之后,其实就是将parent取掉,然后把代理的配置移到了本身上面,这两种方式我认为是没有区别的。为啥一个可以work,一个不行。
?
有谁可以解答一下,谢谢。
?
1 楼 z.raul 2011-01-22 建议楼主单独运行一下主项目,估计主项目的配置就是错误的。大项目使用代理要小心。 2 楼 phpxiaoxin 2011-01-23 z.raul 写道建议楼主单独运行一下主项目,估计主项目的配置就是错误的。大项目使用代理要小心。
不错,前几天发现问题了,主项目中,有人配置了一个id一摸一样的baseTransactionProxy
而且运行debug发现spring使用的不是我们想想中的那个id。
而那个多出来的配置的事务也有问题。
我的异常网推荐解决方案:org.springframework.beans.factory.BeanCreationException:,http://www.myexception.cn/j2ee/10759.html