首页 > 代码库 > spring autowired时发生异常情况

spring autowired时发生异常情况

spring beanFactory那些就不说了,这次发生这个异常纠结好了好久,网上找了很多资料看,终于发现问题。

自动装配bean注入的时候,如果Spring配置定义了aop声明式事务,类似如下方式

<aop:config>
  <aop:pointcut id="serviceMethods2"
   expression="execution(public * net.villion.framework..*(..))" />
  <aop:advisor advice-ref="txAdvice2" pointcut-ref="serviceMethods2" />
 </aop:config>

那么@autowire注入bean的时候,会采用代理的模式注入Proxy,如果是接口定义的注入属性对象没有问题,如果是实体bean,那么就会有java.lang.ClassCastException.或者报类似这个 org.springframework.beans.TypeMismatchException: Failed to convert property value of type [com.sun.proxy.$Proxy ? implements .....错误。

以前使用好好的,我也没注意定义aop事务时,把包路径设置得太大了,覆盖了全部,导致注入出现异常情况。

给自己一个教训,这次找了好久,发文希望网上能够给大伙儿一个直接找到问题的地方。