关于java配置方式整合mybatis事务遇到的问题
在通过java-config的方式配置事务的时候在spring容器中添加了如下代码
@Bean
public MapperScannerConfigurer mapperScannerConfigurer1() {
MapperScannerConfigurer scan = new MapperScannerConfigurer();
scan.setBasePackage("cn.dlc.com.sys.user.model");
return scan;
}
当时的初衷是为了测试扫描mapper接口,当然其实我们可以通过其他更简单的方式扫描。之所以这样写是因为在xml配置过程中可以通过下面的方式配置mapper的扫描,自己想一一测试,结果遇到大坑!
<!-- 扫描mapper文件 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="cn.dlc.com.sys.user.model" />
</bean>
这个bean被注册之后我就发现无论我怎么配置我的事务,就是不起作用,而且通过@PropertySource导入的配置文件始终无法注入到Environment对象中,得到的Environment一直是空的,后来将这个bean注释掉突然发现事务就可以了,暂时没有跟踪源码追究原因,后期将进行补充,同时希望大佬分项一下心得!
最终结果就是扫描mapper接口不要用上面的bean,最好使用@MapperScan
@MapperScan("cn.dlc.com.sys.user.mapper")
总之注释掉一开始那个bean之后,事务和配置文件都正常了!