DynamicDataSourceConfig.java 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package com.jiayue.ipfcst.client.config;
  2. import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
  3. import org.springframework.boot.context.properties.ConfigurationProperties;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.Configuration;
  6. import org.springframework.context.annotation.Primary;
  7. import javax.sql.DataSource;
  8. import java.util.HashMap;
  9. import java.util.Map;
  10. @Configuration
  11. public class DynamicDataSourceConfig {
  12. @Bean
  13. @ConfigurationProperties("spring.datasource.datasource1")
  14. public DataSource firstDataSource(){
  15. return DruidDataSourceBuilder.create().build();
  16. }
  17. // @Bean
  18. // @ConfigurationProperties("spring.datasource.datasource2")
  19. // public DataSource secondDataSource(){
  20. // return DruidDataSourceBuilder.create().build();
  21. // }
  22. //
  23. // @Bean
  24. // @ConfigurationProperties("spring.datasource.datasource3")
  25. // public DataSource thirdDataSource(){
  26. // return DruidDataSourceBuilder.create().build();
  27. // }
  28. @Bean
  29. @Primary
  30. public DynamicDataSource dataSource(DataSource firstDataSource, DataSource secondDataSource,DataSource thirdDataSource) {
  31. Map<Object, Object> targetDataSources = new HashMap<>(5);
  32. targetDataSources.put(DataSourceNames.FIRST, firstDataSource);
  33. // targetDataSources.put(DataSourceNames.SECOND, secondDataSource);
  34. // targetDataSources.put(DataSourceNames.Third, thirdDataSource);
  35. return new DynamicDataSource(firstDataSource, targetDataSources);
  36. }
  37. }