spring事务管理,循环插入数据中间一条出错实现回滚。

  •   使用的是 aop 声明式事务。 但是 循环插入写在 Controller 层中所以一直不能回滚,Controller 层的扫描在 springmvc 的配置文件中使用 
1 // 扫描包下的除了 @Controller  注册到 spring    spring的配置      事务的配置都是在spring的配置文件中的。
2 component-scan base-package="包名">
   3 exclude-filter type="annotation" 4 expression="org.springframework.stereotype.Controller" /> // exclude-filter 过滤掉不扫描的注解 与之对应的是 include-filter 5 6 7 8 // 使用 @RequestMapping 注解是必须开启 annotation-driven 该注解要和扫描controller的注解一起放在spring主配置文件。 9
  •   Controller 层的扫描是在 springmvc 的配置文件中实现的。 springmvc 也有一个属于自己的子容器,相当于被 spring 容器包裹。 所以这种情况下 在 Controller 中使用 @transactional 会失效,配置切点也会失效。
  •   好的解决方法是将事务在 Service 层进行管理。  有时候 try-catch 捕获了事务异常,如果没有 抛出一个 RuntimeException 也不会进行回滚。

转载于:https://www.cnblogs.com/dengsheng/p/10692003.html

你可能感兴趣的:(spring事务管理,循环插入数据中间一条出错实现回滚。)