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

    xiaoxiao2021-03-25  91

    异常问题 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"/>
    转载请注明原文地址: https://ju.6miu.com/read-12591.html

    最新回复(0)