springboot配置多数据源

前言

上一篇博客讨论了如何配置单数据源, 这一篇博客接着讨论如何配置多数据源。

配置文件

首先需要将数据源的连接字符串写到配置文件中:

1
2
3
4
5
6
7
springtestdb.datasource.url=jdbc:mysql://127.0.0.1:3306/springboottestdb?serverTimezone=UTC
springtestdb.datasource.username=root
springtestdb.datasource.password=password

printer.datasource.url=jdbc:mysql://127.0.0.1:3306/printer?serverTimezone=UTC
printer.datasource.username=root
printer.datasource.password=password

配置类

接着写配置类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@Configuration
@EnableTransactionManagement
@Slf4j
public class PrinterDataSource {
@Bean
@ConfigurationProperties("printer.datasource")
public DataSourceProperties printerDataSourceProperties() {
return new DataSourceProperties();
}

@Bean(name = "printer")
public DataSource printerDataSource() {
DataSourceProperties dataSourceProperties = printerDataSourceProperties();
log.info(dataSourceProperties.getUrl());
return dataSourceProperties.initializeDataSourceBuilder().build();
}

@Bean
public PlatformTransactionManager printerTransactionManager(DataSource printer) {
return new DataSourceTransactionManager(printer);
}
}

这里使用了DataSourceProperties将配置文件中的配置设置到了DataSource中, 这样配置了之后, 其他的数据源的配置也可以像这样配置。


springboot配置多数据源
http://icecreamzhao.github.io/back_skill_experience/java/spring/spring-family-meals/springboot-datasource-multi.html
作者
littleboyDK
发布于
2019年5月19日
许可协议