SpringBoot整合Mybatis,TypeAliases配置失败的问题

问题描述

在应用MyBatis时,使用对象关系映射,将对象和Aliase映射起来。

在Mybatis的文档明确写出,如果你没有明确定义实体类的Aliase,框架会自动将Class Name自动

作为别名。

那么问题来了,当使用java -jar xxx.jar&启动的时候,会报出以下错误,

Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'XXXXX'.Cause: java.lang.ClassNotFoundException: Cannot find class: XXXXX

从异常信息来看,明显就是无法从本地检索到alise对应的类,并最终导致sqlSessionFactory等初始化

失败。而且吊轨的是,直接在Idea中启动是没有问题的,启动jar包才会出现这个问题

解决方法

参考博主A_Beaver的文章,原来mybatis的facroty需要加载SpringBoot独特的虚拟文件系统,才能识别类路径

public SpringBootVFS() {
this.resourceResolver = new PathMatchingResourcePatternResolver(getClass().getClassLoader());
}

从以上代码看,其实是通过PathMatchingResourcePatternResolver实现资源的加载

修复该问题只需要在mybatis的配置类中,设置一下factory即可,

    @Bean(name = "masterSqlSessionFactory")
@Primary
public SqlSessionFactory sqlSessionFactory(@Qualifier("masterDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setVfs(SpringBootVFS.class);//设置SpringBootVFS
bean.setTypeAliasesPackage("com.fulan.domain.red");
...
}

参考

完结!

最新文章

  1. 高薪诚聘熟悉ABP框架的.NET高级开发工程师(2016年7月28日重发)
  2. C#获取硬盘序列号的问题求助
  3. MVC4 +EasyUI Tabs 使用
  4. Jquery操作下拉框(DropDownList)实现取值赋值
  5. Windows下Nginx+Mysql+Php(wnmp)环境搭建
  6. Apache Kafka源码分析 - ReplicaStateMachine
  7. Android 获取网络状态
  8. poj 1149 最大流
  9. layer弹出标签层tab
  10. UML建模之状态图(Statechart Diagram)
  11. PHP面向对象编程快速入门
  12. Linux 之Cut命令详解
  13. Android开发之旅:android架构
  14. startActivityForResult与onActivityResult
  15. 编译安装LAMP并实现wordpress
  16. 章节十、4-CSS Classes---用多个CSS Classes定位元素
  17. 高性能IO之Reactor模式
  18. JAVA课程课后作业之使用递归完成回文
  19. python全栈开发 * 31知识点汇总 * 180716
  20. SQL中游标的使用(转)

热门文章

  1. C语言转置矩阵算法
  2. C++基础--回调的应用
  3. java.langThrowable:STACKTRACE
  4. 关于windows server 里Let's Encrypt续订的问题
  5. JAVA程序员常用开发工具
  6. 【Leetcode】【Medium】Construct Binary Tree from Inorder and Postorder Traversal
  7. 工作好搭档(四):铷安居 H-C81 电脑桌
  8. MQ中将消息发送至远程队列的配置
  9. Hibernate多对多关联关系
  10. 博客改用markdown编写啦!