springboot如何管理多数据源?
静态多数据源管理
-
配置多个数据源 :创建多个数据源的配置类,通常使用
@ConfigurationProperties
注解来绑定配置文件中的数据源属性,并通过@Bean
注解定义多个DataSource
Bean 。例如:-
配置类:
@Configuration public class DataSourceConfig {@Bean(name = "primaryDataSource")@Primary@ConfigurationProperties(prefix = "spring.datasource.primary")public DataSource primaryDataSource() {return DataSourceBuilder.create().build();}@Bean(name = "secondaryDataSource")@ConfigurationProperties(prefix = "spring.datasource.secondary")public DataSource secondaryDataSource() {return DataSourceBuilder.create().build();} }
配置文件:
spring.datasource.primary.url=jdbc:mysql://localhost:3306/db1 spring.datasource.primary.username=root spring.datasource.primary.password=123456 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=123456 spring.datasource.secondary.driver-class-name=com.mysql.cj.jdbc.Driver
配置 MyBatis 的 SqlSessionFactory 和事务管理器 :为每个数据源配置独立的
SqlSessionFactory
和DataSourceTransactionManager
。例如: -
主数据源配置类:
@Configuration @MapperScan(basePackages = "com.example.mapper.primary", sqlSessionFactoryRef = "primarySqlSessionFactory") publ
-