这个星期发现项目里面的叼事务居然不回滚想死的心都有。
我说说我的事务部回滚的原因:applicationContext 和 spring-mvc 这两个配置的文件中扫描包扫了两遍,两个东西重复了,导致事物不回滚
applicationContext 配置
<context:component-scan base-package="com.higgs.museum">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
</context:component-scan>
这里只扫描service 的注解
spring-mvc配置
<context:component-scan base-package="com.higgs.museum">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" />
</context:component-scan>
这里扫描controller 会自动的去扫描他下面子类,去掉applicationContext 扫描的 service中的注解。在加载的过程中先是加载spring-mvc 的配置 然后是加载applicationContext的配置
web的配置
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>museum</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>museum</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>