@MapperScan(basePackages = "com.oo.xx", annotationClass = Mapper.class,
sqlSessionTemplateRef = "xxxSqlSessionTemplate",
sqlSessionFactoryRef = "xxxSqlSessionFactory")
问题:sqlSessionTemplateRef与sqlSessionFactoryRef需要两个都注入么
我们先注入sqlSessionFactory看看流程
1、此处会把我们的bean加入扫码并注册

2、 我们注入的sqlSessionFactory最后在SqlSessionDaoSupport.setSqlSessionFactory被使用,并且内建了一个sqlSessionTemplate对象
如果我们上面的注解是sqlSessionTemplateRef,那么会走SqlSessionDaoSupport.setSqlSessionTemplate
如果两个注解都有,优先使用sqlSessionTemplateRef

3、使用,如下不管注解是sqlSessionFactoryRef还是sqlSessionTemplateRef,在使用的时候走的都是sqlSessionTemplate

4、结论
使用sqlSessionTemplateRef = "omsSqlSessionTemplate" 注解即可
本文探讨了在Spring框架中使用MyBatis时,如何选择和配置SqlSessionTemplate与SqlSessionFactory。通过实际代码示例,解析了两者之间的区别及使用场景,指出仅需注入SqlSessionTemplate即可满足大多数需求。
1814





