spring3+mybatis3注解事务不起作用解决方案

=== 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;
	
	
}

 

你可能感兴趣的:(spring,mybatis)