springboot多数据源碰到的问题:mybatis的mapper.xml和dao分离到不同文件

前段时间有空,自己学习了下如何实现连接多数据源,框架是springboot+mybatis+mysql。具体实现有空再开个文章,这里记录下困扰许久的问题,今天终于解决。

一般mybatis,如果xml和dao分离,默认要放在同一个文件夹下。springboot默认有resources,推荐xml等静态资源放在resources文件夹下,目录为

单数据源时,只需要再application.properties中写好mybatis配置:

#mybatis
#mybatis.config-locations=classpath:mybatis/mybatis-config.xml
mybatis.mapper-locations=classpath:mappers/*.xml

声明mybatis的mapper.xml位置,就可以实现xml和dao放在不同文件夹,如上图。

但是我在实现了多数据源后,上述方式失效,xml又必须和dao放在同一文件夹,今天灵光一现,想通了关节。因为单数据源时,我们都默认使用springboot的配置,springboot自动帮我们完成连接数据库的过程。

然鹅,多数据源时,我们是自己手动创建数据库连接,注入到sqlfactory,这时候我们就要手动配置。上图:

加上这句

factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mappers/*.xml"));

配置xml的文件路径,也可以写在application.properties,然后在config里读取。这里我就直接写在config里了。

问题解决!

猜你喜欢

转载自blog.csdn.net/qq_29856253/article/details/86504602