spring与mybatis整合事务回滚问题

废话不多说了,直接说情况,接手新的项目,框架是spring+springmvc+mybatis,在service层事务处理时,事务不回滚,看了下配置文件,发现了问题,所以再此说一下,配置事务需要注意的几个问题

1.web.xml中将spring的配置文件配置到容器中如下:

<context-param>

    <param-name>contextConfigLocation</param-name>

    <param-value>classpath:spring-mybatis.xml</param-value>

  </context-param>

这是配置的父容器

<init-param>

      <param-name>contextConfigLocation</param-name>

      <param-value>classpath:spring-mvc.xml</param-value>

    </init-param>

    <load-on-startup>1</load-on-startup>

    <async-supported>true</async-supported>

这是配置sringmvc是加入的配置文件,也是spring的子容器

所以在配置springmvc的controller注解扫描包时,一定要注意不能包含service层或者dao层的包

<context:component-scan base-package="com.xxx.controller">

如果这边base-package设置的包含了service层,则在service层的注解将不会起作用

原因就是:父容器是不可以访问子容器中的内容,子容器可以访问父容器中的内容

2.在service层的需要处理事务的方法中,如果调用其它方法(比如调用了A方法),那么A方法也需要抛出异常,如果A方法不抛异常,则再A方法中报错的话,事务将不会回滚

3.至于怎么配置事务这个我就不多说了,谷歌一下。。。。。

猜你喜欢

转载自caixing-java.iteye.com/blog/2370022