spring boot 与mybatis整合,type-aliases-package、type-handlers-package等配置不起作用,导致类加载失败

spring boot 与mybatis整合,将Mapper文件放到Resource文件夹中读取。

使用配置如下

mybatis.type-aliases-package=
mybatis.type-handlers-package=

本地测试环境运行可以,但是打包之后
在 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

一开始猜测mybatis在spring boot环境中的bug,扫描这些包中的类,但类加载找不到,肯定找的路径不对,所以肯定是这一块出现了问题,

spring boot这种运行方式的文件系统与之前的不一样,所以mybatis需要设置spring boot vsf。

sqlSessionFactoryBean.setVfs(SpringBootVFS.class);

由于源码这块还没好好看,如果你看过源码,也会看到mybatis-spring-boot-autoconfigure中的配置:

MybatisAutoConfiguration类:

@Bean
@ConditionalOnMissingBean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
  SqlSessionFactoryBean factory = new SqlSessionFactoryBean();
  factory.setDataSource(dataSource);
  factory.setVfs(SpringBootVFS.class);

最后一行的配置,说明了mybatis对应spring boot环境的配置,

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值