一、配置文件
pom.xm
<dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.1.10.RELEASE</version>
</dependency>
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.48</version><scope>runtime</scope>
</dependency>
application.yml
spring:application:name: double-datasource-jdbcprofiles:active: devjackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: GMT+8server:port: 8008sys:jdbc:one:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://192.168.1.2:3307/testdb01?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghaiusername: rootpassword: admin123druid:initial-size: 10max-active: 100min-idle: 10max-wait: 60000pool-prepared-statements: truemax-pool-prepared-statement-per-connection-size: 20time-between-eviction-runs-millis: 60000min-evictable-idle-time-millis: 300000validation-query: SELECT 1 FROM DUALtest-while-idle: truetest-on-borrow: falsetest-on-return: falsefilter:stat:log-slow-sql: trueslow-sql-millis: 1000merge-sql: trueenabled: truewall:config:multi-statement-allow: truestat-view-servlet:enabled: falsetwo:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://192.168.1.2:3307/testdb02?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghaiusername: rootpassword: admin123druid:initial-size: 10max-active: 100min-idle: 10max-wait: 60000pool-prepared-statements: truemax-pool-prepared-statement-per-connection-size: 20time-between-eviction-runs-millis: 60000min-evictable-idle-time-millis: 300000validation-query: SELECT 1 FROM DUALtest-while-idle: truetest-on-borrow: falsetest-on-return: falsefilter:stat:log-slow-sql: trueslow-sql-millis: 1000merge-sql: trueenabled: truewall:config:multi-statement-allow: truestat-view-servlet:enabled: false
二、配置Configuration Bean
(1)第一个jdbc配置(主)
public class OneJdbcConfig {@Primary@Bean@ConfigurationProperties(prefix = "sys.jdbc.one")public DataSourceProperties oneDataSourceProperties(){return new DataSourceProperties();}@Primary@Beanpublic JdbcTemplate oneJdbcTemplate(@Autowired @Qualifier("oneDataSourceProperties") DataSourceProperties dataSourceProperties){DataSource dataSource = dataSourceProperties.initializeDataSourceBuilder().build();return new JdbcTemplate(dataSource);}
}
(2)第二个jdbc配置
public class TwoJdbcConfig {@Bean@ConfigurationProperties(prefix = "sys.jdbc.two")public DataSourceProperties twoDataSourceProperties(){return new DataSourceProperties();}@Beanpublic JdbcTemplate twoJdbcTemplate(@Autowired @Qualifier("twoDataSourceProperties") DataSourceProperties dataSourceProperties){DataSource dataSource = dataSourceProperties.initializeDataSourceBuilder().build();return new JdbcTemplate(dataSource);}
}
(3)导入配置
@Configuration
@Import({OneJdbcConfig.class, TwoJdbcConfig.class})
public class JdbcConfig {}
注意:去掉默认自动配置
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, JdbcTemplateAutoConfiguration.class})
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}