Spring Boot 多数据源配置:MySQL、SQL Server、ClickHouse
要在Spring Boot中同时配置MySQL、SQL Server和ClickHouse三种数据源,需要进行以下步骤:
-
在'pom.xml'文件中添加相应的依赖项:
- MySQL:'mysql-connector-java'
- SQL Server:'mssql-jdbc'
- ClickHouse:'clickhouse-jdbc'
-
在'application.properties'文件中配置数据源信息:
- MySQL:
spring.datasource.mysql.url=jdbc:mysql://localhost:3306/db_name spring.datasource.mysql.username=username spring.datasource.mysql.password=password spring.datasource.mysql.driver-class-name=com.mysql.jdbc.Driver - SQL Server:
spring.datasource.sqlserver.url=jdbc:sqlserver://localhost:1433;databaseName=db_name spring.datasource.sqlserver.username=username spring.datasource.sqlserver.password=password spring.datasource.sqlserver.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver - ClickHouse:
spring.datasource.clickhouse.url=jdbc:clickhouse://localhost:8123/db_name spring.datasource.clickhouse.username=username spring.datasource.clickhouse.password=password spring.datasource.clickhouse.driver-class-name=ru.yandex.clickhouse.ClickHouseDriver
- MySQL:
-
创建相应的数据源配置类,用于加载不同的数据源:
- MySQL配置类:
@Configuration @ConfigurationProperties(prefix = 'spring.datasource.mysql') public class MySqlDataSourceConfig extends HikariDataSource { // 可以在此处添加MySQL特定的配置 } - SQL Server配置类:
@Configuration @ConfigurationProperties(prefix = 'spring.datasource.sqlserver') public class SqlServerDataSourceConfig extends HikariDataSource { // 可以在此处添加SQL Server特定的配置 } - ClickHouse配置类:
@Configuration @ConfigurationProperties(prefix = 'spring.datasource.clickhouse') public class ClickHouseDataSourceConfig extends HikariDataSource { // 可以在此处添加ClickHouse特定的配置 }
- MySQL配置类:
-
在需要使用数据源的地方,使用'@Qualifier'注解来指定要使用的数据源:
@Autowired @Qualifier('mySqlDataSource') private DataSource mySqlDataSource; @Autowired @Qualifier('sqlServerDataSource') private DataSource sqlServerDataSource; @Autowired @Qualifier('clickHouseDataSource') private DataSource clickHouseDataSource;
这样就可以在Spring Boot中同时配置和使用MySQL、SQL Server和ClickHouse三种数据源了。根据需要,可以在配置类中添加特定的配置,以满足各自数据库的要求。
原文地址: https://www.cveoy.top/t/topic/c0Nm 著作权归作者所有。请勿转载和采集!