您的位置:首页 > 编程语言 > Java开发

spring整合hibernate中的动态代理问题

2017-03-09 15:46 381 查看
异常问题

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘purchaseBookImp’: Unsatisfied dependency expressed through field ‘bookImpl’; nested exception is org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named ‘bookImpl’ is expected to be of type ‘com.hbks.spring_hibernate.interfacesImp.BookImpl’ but was actually of type ‘com.sun.proxy.$Proxy38’

当初始化purchaseBookImp类bean时需要用到bookImpl和accountImpl两个bean 但是这两个bean用@autowried注释的化就会出这个异常。

这个问题出现的原因:一般在使用annotation的方式注入spring的bean 出现的,具体是由于spring采用代理的机制导致的,看使用的代码:



此 代码不能使用JDK的动态代理注入,原因是jdk的动态代理不支持类注入,只支持接口方式注入;jdk动态代理注入;

如果要使用此代码的方式,必须使用cglib代理;

当然了推荐使用代码2的方式,基于接口编程的方式!

关于spring动态代理的配置:

1.使用aop配置:
<aop:config proxy-target-class="false"> </aop:config>


2. aspectj配置:
<aop:aspectj-autoproxy proxy-target-class="true"/>


3. 事务annotation配置:
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hibernate spring exception