Sping异常02

来源:互联网 发布:知乎 市川海老藏 编辑:程序博客网 时间:2024/05/21 09:40

  Sping异常-AOP动态代理异常


异常描述: 

   org.springframework.beans.factory.BeanCreationException: Error creating bean with name'com.spring.test.Test6': Injection of resource dependencies failed; nested exception is

  org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'serviceProxyFactoryBean' must be of type [com.spring.transaction.demo1.AccountService], but was actually of type [$Proxy21]

异常分析:

   这种错误一般出在aop面向切面的编程中,spring面向切面的代理有两种,一种是jdk动态代理,一种是cglib代理;这是你在使用的的使用如果混合时候就会出现上面的错;这两种代理的区别是前者是接口代理,就是返回一个接口类型对象,而后者是类代理,不能返回接口类型对象只能返回类类型对象,如果返回接口了同样会出这样的错。
还有可能出错的地方就是对应的spring配置文件,这里是最容易马虎出错的地方,仔细检查一下的你的目标对象,比如:<!-- 目标对象 -->

 <property name="target" ref="accountService"></property>

这里在引用bean的时候可能引入错误,可能会引入jdk动态代理的目标类,也有可能你的目标类中实现了某些接口,不符合cglib代理的理念;还有可能马虎出错的地方:
真实对象的id和class属性设置错误的时候也会出错。

在测试时:

import com.spring.transaction.demo2.AccountService;


@Resource(name="accountService")
private AccountService accountService;

属性accountService包引入错误:把“demo2”写成“demo1”,微笑Sping为name="target"的目标对象代理时由于目标对象的路径错误,造成异常!!

小结: 

太粗心大意了,遇到问题,要静下心干掉'bug'....,.


0 0
原创粉丝点击