mybatis-plus 配置多个数据源
数据源master
@Configuration
@MapperScan(basePackages = "com.xxx.mapper.master", sqlSessionFactoryRef = "masterSqlSessionFactory")
public class DongcaiDataSourceConfig {
@Bean(name = "masterDataSource")
@ConfigurationProperties(prefix = "spring.master.datasource")
public DruidDataSource masterDataSource() {
return new DruidDataSource();
}
@Bean(name = "masterSqlSessionFactory")
public SqlSessionFactory dongcaiSqlSessionFactory(@Qualifier("masterDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources("classpath*:mapping/master/*Mapper.xml"));
return bean.getObject();
}
@Bean(name = "masterSqlSessionTemplate")
public SqlSessionTemplate dongcaiSqlSessionTemplate(@Qualifier("masterSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
数据源 slave
@Configuration
@MapperScan(basePackages = "com.xxx.mapper.slave", sqlSessionFactoryRef = "slaveSqlSessionFactory")
public class DongcaiDataSourceConfig {
@Bean(name = "slaveDataSource")
@ConfigurationProperties(prefix = "spring.slave.datasource")
public DruidDataSource masterDataSource() {
return new DruidDataSource();
}
@Bean(name = "slaveSqlSessionFactory")
public SqlSessionFactory dongcaiSqlSessionFactory(@Qualifier("slaveDataSource") DataSource dataSource) throws Exception {
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources("classpath*:mapping/slave/*Mapper.xml"));
return bean.getObject();
}
@Bean(name = "slaveSqlSessionTemplate")
public SqlSessionTemplate dongcaiSqlSessionTemplate(@Qualifier("slaveSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
注意,这里用 MybatisSqlSessionFactoryBean 而不是 SqlSessionFactoryBean!!
修改启动类,排除mybatis和mybatis-plus 自动装配
@SpringBootApplication(exclude = {MybatisPlusAutoConfiguration.class,MybatisAutoConfiguration.class})
public class UserApplication {
public static void main(String[] args) {
SpringApplication.run(UserApplication.class, args);
}
}
该文章展示了如何在SpringBoot中配置Mybatis-Plus以支持多个数据源。配置包括了主数据源`master`和从数据源`slave`,使用DruidDataSource作为数据源,分别创建对应的SqlSessionFactory和SqlSessionTemplate。同时,需要在启动类中排除Mybatis和Mybatis-Plus的自动装配。
7050

被折叠的 条评论
为什么被折叠?



