欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

**Bean named 'XXX' is expected but was actually of type 'com.sun.proxy.$Proxy**'的两种解决方法**

程序员文章站 2022-04-12 21:02:58
...

but was actually of type 'com.sun.proxy.$Proxy’的两种解决方法**
错误提示:

Caused by: org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'catServiceImpl' is expected to be of type 'com.xin.service.CatServiceImpl' but was actually of type 'com.sun.proxy.$Proxy17'

方法一:

	<aop:config>
        <aop:aspect ref="TxManager">
            <aop:pointcut id="txPointCut" expression="execution(* com.xin.service.*ServiceImpl.*(..))"/>
            <aop:before method="begin" pointcut-ref="txPointCut"/>
            <aop:after-throwing method="rollback" pointcut-ref="txPointCut"/>
            <aop:after-returning method="commit" pointcut-ref="txPointCut"/>
        </aop:aspect>

    </aop:config>
	<aop:config>
        <aop:aspect ref="TxManager">
            <aop:pointcut id="txPointCut" expression="execution(* com.xin.service.*ServiceImpl.*(..))"/>
            <aop:before method="begin" pointcut-ref="txPointCut"/>
            <aop:after-throwing method="rollback" pointcut-ref="txPointCut"/>
            <aop:after-returning method="commit" pointcut-ref="txPointCut"/>
        </aop:aspect>

    </aop:config>
    <!--添加上这句话--!>
    <aop:aspectj-autoproxy  proxy-target-class="true"/>

我是用方法一就解决了
大佬说原因是spring aop代理混用的问题(这问题我暂时也不太懂。百度学学)

方法二:
转自:这里