配置文件分为 spring-mvc.xml 和 spring-mybatis.xml两个。
看了网上很多资料,也尝试过多种配置,但是事务回滚依然不起作用??
1 <!-- 声明式事物管理 --> 2 <bean id="transactionManager" 3 class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 4 <property name="sessionFactory" ref="sessionFactory"></property> 5 </bean> 6 <tx:advice id="txAdvice" transaction-manager="transactionManager"> 7 <tx:attributes> 8 <!-- 以find开头的方法不需要开启事物,且session是readOnly的 --> 9 <tx:method name="find*" read-only="true" propagation="NOT_SUPPORTED"/> 10 <!-- 其余方法采用默认配置 --> 11 <tx:method name="*" /> 12 </tx:attributes> 13 </tx:advice> 14 <aop:config> 15 <!-- 在service层上开始管理事物 --> 16 <aop:pointcut id="operation" 17 expression="execution(public * com.service.impl.*.*(..))" /> 18 <aop:advisor advice-ref="txAdvice" pointcut-ref="operation" /> 19 </aop:config>
我是用的hibernate,感觉事务管理如果不起作用的话应该是配置aop的时候expression没有配置好。
请问这种 tx + aop的方式,除了配置文件,还需要修改dao或者service吗??
@Romama: 不用修改代码。但是tx:method的配置要根据service中方法名来配置
@高山仰止oo: 好的!谢谢~~
@高山仰止oo: beans包下需要配置吧??但是我配置了包后,再添加上你给的代码tomcat启动就报错啦。。错误提示好像是引入的包同tx、aop的没有精确匹配,请问你知道怎么解决吗