springboot结合baomidou dynamic-datasource组件实现多数据源
在Spring Boot项目中,使用Baomidou的Dynamic-Datasource组件可以轻松实现多数据源的配置和动态切换。以下是一个简单的示例:
- 添加依赖到
pom.xml
:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.x.x</version>
</dependency>
- 在
application.yml
中配置多个数据源:
spring:
datasource:
dynamic:
primary: db1 # 设置默认数据源
strict: false # 开启严格模式, 默认false不启用, 启用则在没有配置主键时会抛出异常, 不启用则自动生成
datasource:
db1:
url: jdbc:mysql://localhost:3306/db1
username: root
password:
driver-class-name: com.mysql.cj.jdbc.Driver
db2:
url: jdbc:mysql://localhost:3306/db2
username: root
password:
driver-class-name: com.mysql.cj.jdbc.Driver
- 使用
@DS
注解动态切换数据源:
@Service
public class DataSourceService {
@Autowired
private DynamicDataSourceProvider dynamicDataSourceProvider;
@Transactional
public void switchDataSource(String dataSourceName) {
// 切换数据源
dynamicDataSourceProvider.setDataSource(dataSourceName);
}
}
- 在业务代码中使用注解指定数据源:
@Service
public class SomeService {
@DS("db1")
public void someMethod1() {
// 使用db1数据源执行操作
}
@DS("db2")
public void someMethod2() {
// 使用db2数据源执行操作
}
}
以上代码展示了如何配置多数据源,如何动态切换数据源,以及如何在服务层方法上指定使用特定的数据源。这样,你就可以根据业务需要灵活地在不同的数据源之间切换了。
评论已关闭