=== 2015-04-09 最新补充=======
最近在调试另一个开发框架,发现又出现事务不起作用的情况。后来经过测试,发现需要先调整好配置文件,如下:
spring配置文件:
<context:component-scan base-package="net.aaa.bbb" >
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:exclude-filter type="regex" expression=".*JacksonConversionServiceConfigurer$"/>
<context:exclude-filter type="annotation" expression="net.aaa.bbb.portal.stereotype.ReaderRepository"/>
<context:exclude-filter type="annotation" expression="net.aaa.bbb.portal.stereotype.WriterRepository"/>
</context:component-scan>
spring_mvc配置文件:
<context:component-scan base-package="net.aaa.bbb" >
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:include-filter type="regex" expression=".common.*"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
</context:component-scan>
=================================
最近在搭建一个开发基础平台,用到了spring3,springMVC,mybatis3,搭建完成后,发现一个极其郁闷的问题,从spring调试日志可以看出,注解事务没有打开。
这个问题一搜,网上很多重复的文章都是一个解决方案:把spring mvc和spring配置文件里的组件扫描分开配置,分割扫描边界。按教程做了,对我无效。
甚是郁闷,经历一个下午无数次实验,终于给试验出来了,希望对你能有帮助。
注解事务不起作用的代码;
public interface ZqnatService {
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public Map<String,String> addBook(Book book) throws ServiceException;
}
修正后,注解事务生效代码:
@Transactional
public interface ZqnatService {
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public Map<String,String> addBook(Book book) throws ServiceException;
}