基于SpringBoot加载Mybatis的TypeAlias问题
SpringBoot加载Mybatis的TypeAlias
springboot打成jar之后再linux上运行会报找不到 type alias 对应的实体类的问题,这是springboot扫包的问题。
【基于SpringBoot加载Mybatis的TypeAlias问题】工程上默认使用的是Mybatis的DefaultVFS进行扫描,但是在springboot的环境下,Mybatis的DefaultVFS这个扫包会出现问题,所以只能修改VFS,为了清晰可见
直接贴代码:
@Beanpublic SqlSessionFactory sqlSessionFactoryBean() throws Exception {logger.info("load SpringBootVFS"); //DefaultVFS在获取jar上存在问题,使用springboot只能修改VFS.addImplClass(SpringBootVFS.class); SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dataSource()); PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); Resource[] resources1 = resolver.getResources("classpath*:/mybatis/*.xml"); Resource[] resources2 = resolver.getResources("classpath*:/mysql/mapper/*.xml"); Resource[] resources = (Resource[]) ArrayUtils.addAll(resources1,resources2); sqlSessionFactoryBean.setMapperLocations(resources); sqlSessionFactoryBean.setTypeAliasesPackage("com.xxx.xx.entity"); return sqlSessionFactoryBean.getObject(); }
springboot打包启动时报mybatis的typeAlias类名找不到的错误
springBoot项目在IDEA上面正常但是打包之后运行 出错,错误大致为mybatis解析Mapper.xml时 typeAlias找不到XX类
Mapper里面的标签:
这种写法在IDEA里面运行没问题 打包就有问题
正确写法:
代码中的parameterType必须要用全路径才行 否则就出错。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
推荐阅读
- Activiti(一)SpringBoot2集成Activiti6
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 基于|基于 antd 风格的 element-table + pagination 的二次封装
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- 使用composer自动加载类文件
- 基于爱,才会有“愿望”当“要求”。2017.8.12
- springboot使用redis缓存
- springboot整合数据库连接池-->druid
- javaweb|基于Servlet+jsp+mysql开发javaWeb学生成绩管理系统