背景介绍
Spring Boot 是一个用于快速构建独立的、基于生产级的 Spring 应用程序的工具。它通过简化配置和提供常用功能的自动集成,大大减少了开发人员的工作量。
Mybatis plus 是 Mybatis 的增强工具集,它提供了更加便捷的数据访问和操作方式,可以极大地提高开发效率和代码质量。
在实际项目开发中,我们可能会面临多数据源的情况,即需要连接多个不同的数据库。这时,使用 Spring Boot 结合 Mybatis plus 来实现多数据源配置非常方便,本文将介绍具体的实践方法。
实现步骤
步骤一:添加依赖
在 pom.xml
文件中添加以下依赖:
<dependencies>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- Mybatis plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>latest</version>
</dependency>
<!-- 数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
步骤二:配置数据源
在 application.properties
(或 application.yml
) 文件中添加数据源配置,示例如下:
# 主数据源
spring.datasource.primary.url=jdbc:mysql://localhost:3306/db1
spring.datasource.primary.username=root
spring.datasource.primary.password=root
spring.datasource.primary.driver-class-name=com.mysql.cj.jdbc.Driver
# 第二个数据源
spring.datasource.secondary.url=jdbc:mysql://localhost:3306/db2
spring.datasource.secondary.username=root
spring.datasource.secondary.password=root
spring.datasource.secondary.driver-class-name=com.mysql.cj.jdbc.Driver
步骤三:创建数据源配置类
创建一个配置类,用于动态创建数据源,示例如下:
@Configuration
@ConditionalOnProperty(prefix = "spring.datasource.primary", name = "url")
@MapperScan(basePackages = "com.example.mapper.primary", sqlSessionTemplateRef = "primarySqlSessionTemplate")
public class PrimaryDataSourceConfig {
@Bean
@ConfigurationProperties(prefix = "spring.datasource.primary")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean
public SqlSessionFactory primarySqlSessionFactory(@Qualifier("primaryDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(dataSource);
return factoryBean.getObject();
}
@Bean
public SqlSessionTemplate primarySqlSessionTemplate(@Qualifier("primarySqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
类似地,创建一个用于第二个数据源的配置类 SecondaryDataSourceConfig
。
步骤四:创建 DAO 和 Service
创建与数据库表对应的实体类和 DAO 接口,使用 @Mapper
注解标注,并编写相应的 CURD 方法。
接着,创建 Service 类,使用 @Service
注解标注,并注入对应的 DAO 依赖。在 Service 类中编写业务逻辑代码。
步骤五:测试多数据源
编写一个测试类,用于测试多数据源的功能,示例如下:
@SpringBootTest
public class MultiDataSourceTest {
@Autowired
private PrimaryUserMapper primaryUserMapper;
@Autowired
private SecondaryUserMapper secondaryUserMapper;
@Test
public void testMultiDataSource() {
// 主数据源操作
List<PrimaryUser> primaryUsers = primaryUserMapper.selectList(null);
System.out.println("Primary DataSource: " + primaryUsers);
// 第二个数据源操作
List<SecondaryUser> secondaryUsers = secondaryUserMapper.selectList(null);
System.out.println("Secondary DataSource: " + secondaryUsers);
}
}
运行测试类,检查是否能正常访问和操作两个数据源中的数据。
总结
通过上述步骤,我们成功地实现了 Spring Boot 与 Mybatis plus 的多数据源配置。在实际项目中,可以根据具体需求添加更多的数据源,并根据需要添加对应的配置类和 DAO。这样,我们可以更加灵活地操作多个数据库,并简化了开发过程。
希望本文对大家对 Spring Boot + Mybatis plus 多数据源实践有所帮助。如有任何疑问或建议,请随时留言。
本文来自极简博客,作者:云端漫步,转载请注明原文链接:Spring Boot Mybatis plus 多数据源实践