解决mybatis-spring从1.1升级到1.2所带来问题
来源:互联网 发布:java观察者模式实例 编辑:程序博客网 时间:2024/05/20 01:36
解决mybatis-spring从1.1升级到1.2所带来问题
该博客主要针对springboot项目
问题背景
最近在使用项目中遇见如下一个错误:
Caused by: java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required at org.springframework.util.Assert.notNull(Assert.java:134) at org.mybatis.spring.support.SqlSessionDaoSupport.checkDaoConfig(SqlSessionDaoSupport.java:74) at org.mybatis.spring.mapper.MapperFactoryBean.checkDaoConfig(MapperFactoryBean.java:73) at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624) ... 39 more
引发该问题的原因是Mybais-Spring包版本过高(1.2以上)引起的,因为1.2以及以上的版本中,对SqlSessionDaoSupport类中的’sqlSessionFactory’或’sqlSessionTemplate’注入方式进行了调整。
解决办法
在Application启动类中添加注解
@ComponentScan(basePackages = {"pers.jarome.init"})
basePackages 的值为扫描指定的包,init包为指定的springboot初始化配置类
Mybatis初始化类
在springboot启动之前注入该类
import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.SqlSessionFactoryBean;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;import org.springframework.context.ApplicationContext;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import javax.sql.DataSource;/** * @author jarome * @date 2017/12/22 **/@Configurationpublic class MybatisInitConfig { @Autowired private DataSourceProperties dataSourceProperties; @Bean public SqlSessionFactory sqlSessionFactoryBean() throws Exception { DataSource dataSource = dataSourceProperties.initializeDataSourceBuilder().build(); SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dataSource); PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); //配置扫描地址 //关于application.properties中与mybatis有关的配置,需要在此处配置才会生效 sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/mapper/*.xml")); return sqlSessionFactoryBean.getObject(); }}
阅读全文
0 0
- 解决mybatis-spring从1.1升级到1.2所带来问题
- mybatis-spring从1.1升级到1.2所带来的dao层级的编写问题
- mybatis-spring从1.1升级到1.2所带来的dao层级的编写问题
- TensorFlow升级到1.2.0后带来的问题
- arcgis的快速升级及其所带来的问题
- 从Spring 3.0升级到Spring 3.1
- 解决OS X 10.11 升级 cocoapods带来的问题
- 从oracle10g 10.2.0.1 升级到10.2.0.4碰到的问题及解决
- 解决SAP 从nonicode 升级到unicode 环境中 出现 RFC 中文用户名 问题
- 升级libtool带来的问题
- svn 升级带来的问题
- WHMCS 升级带来的问题
- Spring带来的问题
- 从jQuery版本升级注意事项(主要是从1.1升级到1.2之后)
- spring整合mybatis升级
- ibatis升级到MyBatis
- 配置spring+mybatis 所发现的奇怪问题
- 解决spring+Mybatis的整合测试问题
- C++笔记---函数声明(prototype)
- 带格式字符串反转
- el表达式取值有特殊符号解决方法
- 知识学习——Java内部类
- 独家 | 10分钟带你上手TensorFlow实践(附代码)
- 解决mybatis-spring从1.1升级到1.2所带来问题
- Coreseek mmseg分词库生成说明
- mysql实现读写分离自带java驱动
- javascript避免数字计算精度误差的方法
- Mongodb使用
- 【css】浮动的影响及解决方法(父元素无高度,而子元素有高度)
- matlab数据操作 mat格式
- Android判断屏幕锁屏的方法总结
- 架构师需要注意DDoS攻击