@Transactional注解事务回滚在控制层不起作用

来源:互联网 发布:叶如何知秋 编辑:程序博客网 时间:2024/05/19 16:37
首先需要添加注解方式配置事务
<!-- 配置事务管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean>    <!-- 注解方式配置事物 --><tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/> <!-- 拦截器方式配置事物 --><tx:advice id="transactionAdvice" transaction-manager="transactionManager"><tx:attributes>    <tx:method name="save*" propagation="REQUIRED" /><tx:method name="delete*" propagation="REQUIRED" /></tx:attributes></tx:advice><aop:config><aop:pointcut id="transactionPointcut" expression="execution(* com.always.service..*Impl.*(..))" /><aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice" /></aop:config>

controller代码

 shopService.insertUserAndShop(shop, adminuser);

ShopServiceImpl代码

@Override@Transactional(propagation=Propagation.REQUIRED, readOnly=false)public int insertUserAndShop(Shop shop, ShopAdmin admin) {// TODO Auto-generated method stubshopadminMapper.insertSelective(admin);shopMapper.insertSelective(shop);return 0;}
在controller添加controller不起作用的原因是容器先扫描了controller包

<!-- 自动扫描controller包下的所有类,使其认为spring mvc的控制器 -->
<context:component-scan base-package="com.always.controller" />

然后再配置的事务,这个时候事务对controller的注解不起作用


阅读全文
0 0
原创粉丝点击