springboot加载mybatis的typealiasspringboot打成jar之后再linux上运行会报找不到 type alias 对应的实体类的问题,这是springboot扫包的问题。
工程上默认使用的是mybatis的defaultvfs进行扫描,但是在springboot的环境下,mybatis的defaultvfs这个扫包会出现问题,所以只能修改vfs,为了清晰可见
直接贴代码:@bean public 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里面的标签:<select parametertype="xxclass" resultmap="xxmap">
这种写法在idea里面运行没问题 打包就有问题
正确写法:<select parametertype="cn.test.xxx.xxclass" resultmap="xxmap">
代码中的parametertype必须要用全路径才行 否则就出错。
以上就是基于springboot加载mybatis的typealias问题怎么解决的详细内容。