时间:2021-07-01 10:21:17 帮助过:17人阅读
以前都是通过配置文件配置的mybatis. 现在要迁移到spring boot上都是用注解的方式. 就出现了一个问题, 提示说sqlSesstionFactory不存在. 看源码我知道是因为这个类没有被spring扫描到(因为没有加注解), 所以需要通过@Bean引入引来, 但引入了多次都没有成功. 最后参考多篇文章, 成功了.
主要参考:
https://blog.csdn.net/weixin_36795183/article/details/79043307
http://www.cnblogs.com/liaoguanwang/p/9769976.html
======================================================================
具体操作如下, 一共两步骤:
1. 定义一个mybatis的配置文件类
@Configuration public class MybatisConfiguration implements TransactionManagementConfigurer{ @Autowired private DataSource dataSource; // 提供SqlSeesion @Bean public SqlSessionFactory sqlSessionFactory() throws Exception { SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(dataSource); return sessionFactory.getObject(); } @Bean public PlatformTransactionManager annotationDrivenTransactionManager() { return new DataSourceTransactionManager(dataSource); } }
2. 在ObjectDao引入的时候, 使用如下方法
* * 顶层接口 */ @Mapper @Repository public class ObjectDao<T> extends SqlSessionDaoSupport { @Resource public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory){ super.setSqlSessionFactory(sqlSessionFactory); } /*@Autowired private SqlSessionFactory sqlSessionFactory;*/ ....... }
具体原因: 参考上面的第一篇文章
spring boot使用注解的方式引入mybatis的SqlSessionDaoSupport
标签:throw class nsa stat 问题 common http sql 存在