多数据源时,mybatis出现找不到第三方jar包中某些类的别名, 这是因为mybatis默认的org.apache.ibatis.io.VFS
实现无法扫描到第三方jar包中的类别名,初始化org.mybatis.spring.SqlSessionFactoryBean
时, 使用io.terminus.boot.mybatis.autoconfigure.SpringBootVFS
替换默认的实现.
@Bean(name = "userSqlSessionFactory")
@Primary
public SqlSessionFactory userSqlSessionFactory(@Qualifier("userDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
// 替换默认的vfs实现
bean.setVfs(SpringBootVFS.class);
bean.setTypeAliasesPackage("com.evergrande.user.model");
ResourcePatternResolver resourceResolver = new PathMatchingResourcePatternResolver();
bean.setMapperLocations(resourceResolver.getResources("classpath*:mapper/*Mapper.xml"));
bean.setDataSource(dataSource);
return bean.getObject();
}
网友评论