在之前的整合配置中,同时进行两条相同的插入语句,当出现异常时,事务不回滚,需要进行一下配置。在springMVc中配置
<context:component-scan base-package="com.tiger">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" />
</context:component-scan>
在applicationContext中配置
<context:component-scan base-package="com.tiger">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
当程序运行时,先读取applicationContext,再读取springMVC中的内容,所以先在applicationContext中不扫描Controller中的注解,先进行事务的控制,因为如果同时扫描Controller,而Controller中调用了Service,那么Service就直接执行了,当执行完成后才进行事务控制。所以先不扫描Controller,让Service进行事务控制。