123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- package com.sooka.sponest.data.utils.database;
- import com.alibaba.druid.pool.DruidDataSource;
- import org.springframework.beans.factory.annotation.Qualifier;
- import org.springframework.boot.context.properties.ConfigurationProperties;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.context.annotation.Primary;
- import javax.sql.DataSource;
- import java.util.HashMap;
- import java.util.Map;
- @Configuration
- public class MultipleDataSourceConfig {
- @Bean("master")
- @ConfigurationProperties(prefix = "spring.datasource.dynamic.datasource.master")
- public DataSource createMasterDataSource() {
- return new DruidDataSource();
- }
- @Bean("dbSystemData")
- @ConfigurationProperties(prefix = "spring.datasource.dynamic.datasource.db-system")
- public DataSource createSystemDataSource() {
- return new DruidDataSource();
- }
- @Bean("dbCenterTranmanager")
- @ConfigurationProperties(prefix = "spring.datasource.dynamic.datasource.db-center-tranmanager")
- public DataSource createTranmanagerDataSource() {
- return new DruidDataSource();
- }
- @Bean("dbCenterData")
- @ConfigurationProperties(prefix = "spring.datasource.dynamic.datasource.db-center-data")
- public DataSource createDataDataSource() {
- return new DruidDataSource();
- }
- @Bean("dbCenterEvent")
- @ConfigurationProperties(prefix = "spring.datasource.dynamic.datasource.db-center-event")
- public DataSource createEventDataSource() {
- return new DruidDataSource();
- }
- @Bean("dbCenterMonitor")
- @ConfigurationProperties(prefix = "spring.datasource.dynamic.datasource.db-center-monitor")
- public DataSource createMonitorDataSource() {
- return new DruidDataSource();
- }
- @Bean("dbCenterTask")
- @ConfigurationProperties(prefix = "spring.datasource.dynamic.datasource.db-center-task")
- public DataSource createTaskDataSource() {
- return new DruidDataSource();
- }
- @Bean("dbCenterEvaluation")
- @ConfigurationProperties(prefix = "spring.datasource.dynamic.datasource.db-center-evaluation")
- public DataSource createEvaluationDataSource() {
- return new DruidDataSource();
- }
- @Bean("dbCenterFire")
- @ConfigurationProperties(prefix = "spring.datasource.dynamic.datasource.db-center-fire")
- public DataSource createFireDataSource() {
- return new DruidDataSource();
- }
- @Bean("dbCenterStraw")
- @ConfigurationProperties(prefix = "spring.datasource.dynamic.datasource.db-center-straw")
- public DataSource createStrawDataSource() {
- return new DruidDataSource();
- }
- @Bean("dbCenterPests")
- @ConfigurationProperties(prefix = "spring.datasource.dynamic.datasource.db-center-pests")
- public DataSource createPestsDataSource() {
- return new DruidDataSource();
- }
- @Bean("dbCenterComprehensive")
- @ConfigurationProperties(prefix = "spring.datasource.dynamic.datasource.db-center-comprehensive")
- public DataSource createComprehensiveDataSource() {
- return new DruidDataSource();
- }
- @Bean("dbCenterOnest")
- @ConfigurationProperties(prefix = "spring.datasource.dynamic.datasource.db-center-onest")
- public DataSource createOnestDataSource() {
- return new DruidDataSource();
- }
- /**
- * 设置动态数据源,通过@Primary 来确定主DataSource
- *
- * @return
- */
- @Bean
- @Primary
- public DataSource createDynamicDataSource(@Qualifier("master") DataSource master,
- @Qualifier("dbSystemData") DataSource dbSystemData,
- @Qualifier("dbCenterData") DataSource dbCenterData,
- @Qualifier("dbCenterEvent") DataSource dbCenterEvent,
- @Qualifier("dbCenterMonitor") DataSource dbCenterMonitor,
- @Qualifier("dbCenterTask") DataSource dbCenterTask,
- @Qualifier("dbCenterEvaluation") DataSource dbCenterEvaluation,
- @Qualifier("dbCenterFire") DataSource dbCenterFire,
- @Qualifier("dbCenterStraw") DataSource dbCenterStraw,
- @Qualifier("dbCenterPests") DataSource dbCenterPests,
- @Qualifier("dbCenterComprehensive") DataSource dbCenterComprehensive,
- @Qualifier("dbCenterOnest") DataSource dbCenterOnest,
- @Qualifier("dbCenterTranmanager") DataSource dbCenterTranmanager) {
- DynamicDataSource dynamicDataSource = new DynamicDataSource();
- //设置默认数据源
- dynamicDataSource.setDefaultTargetDataSource(master);
- //配置多数据源
- Map<Object, Object> map = new HashMap<>();
- map.put("master", master);
- map.put("db-system", dbSystemData);
- map.put("db-center-tranmanager", dbCenterTranmanager);
- map.put("db-center-data", dbCenterData);
- map.put("db-center-event", dbCenterEvent);
- map.put("db-center-monitor", dbCenterMonitor);
- map.put("db-center-task", dbCenterTask);
- map.put("db-center-evaluation", dbCenterEvaluation);
- map.put("db-center-fire", dbCenterFire);
- map.put("db-center-straw", dbCenterStraw);
- map.put("db-center-pests", dbCenterPests);
- map.put("db-center-comprehensive", dbCenterComprehensive);
- map.put("db-center-onest", dbCenterOnest);
- dynamicDataSource.setTargetDataSources(map);
- return dynamicDataSource;
- }
- }
|