Spring AOP报错处理 Can not set field to $Proxy 在spring中使用事物或AOP遇到的错误

原文转自:http://www.ithao123.cn/content-7171673.html


在配置文件中加入proxy-target-class="true"

<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>

或者:

<aop:config proxy-target-class="true">

现在我的配置文件如下:

<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>      <!-- 配置事务管理器 -->      <bean          id="transactionManager"          class="org.springframework.orm.hibernate3.HibernateTransactionManager" >          <property name="sessionFactory" >              <ref local="sessionFactory" />          </property>      </bean>      <!-- 配置哪些方法需要哪些事务 -->      <tx:advice          id="txadvice"          transaction-manager="transactionManager" >          <tx:attributes>              <tx:method                  name="create*"                  propagation="REQUIRED" />              <tx:method                  name="delete*"                  propagation="REQUIRED" />              <tx:method                  name="update*"                  propagation="REQUIRED" />              <tx:method name="read*"                  read-only="true"                  propagation="NOT_SUPPORTED"/>              <tx:method                  name="*"                  read-only="true" />          </tx:attributes>      </tx:advice>      <!-- pointcut切入点;advice,通知,即被织入的方法 。这儿是AOP-->      <aop:config proxy-target-class="true">          <aop:pointcut              id="managerMethods"              expression="execution (* org.ccnt.med.dao.TbTopicDao.*(..))" />          <aop:pointcut              id="managerMethods"              expression="execution (* org.ccnt.med.dao.TbDisTopicDao.*(..))" />          <aop:advisor              advice-ref="txadvice"              pointcut-ref="managerMethods" />      </aop:config>

解释:

AOP使用的动态代理可以针对接口,也可以针对类。java的动态代理只能针对接口。

在用Spring的AOP时,默认动态代理是针对接口的,而我用的是针对类的,所以要加上proxy-target-class="true"


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值