Home >Java >javaTutorial >How to Configure Multiple Data Sources in Spring Boot?

How to Configure Multiple Data Sources in Spring Boot?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-18 09:26:13377browse

How to Configure Multiple Data Sources in Spring Boot?

Configuring Multiple Data Sources in Spring Boot

In Spring Boot, using multiple data sources allows you to isolate data access management for different entities or applications. To achieve this, the application.properties file and Bean configuration methods are utilized.

application.properties

To add a second data source, specify its parameters in application.properties alongside the primary data source:

#first db
spring.datasource.url = [url]
spring.datasource.username = [username]
spring.datasource.password = [password]
spring.datasource.driverClassName = oracle.jdbc.OracleDriver

#second db
spring.secondDatasource.url = [url]
spring.secondDatasource.username = [username]
spring.secondDatasource.password = [password]
spring.secondDatasource.driverClassName = oracle.jdbc.OracleDriver

Bean Configuration

To make the data sources available to the application, add the following Bean configuration methods to a @Configuration annotated class:

@Bean
@Primary
@ConfigurationProperties(prefix="spring.datasource")
public DataSource primaryDataSource() {
    return DataSourceBuilder.create().build();
}

@Bean
@ConfigurationProperties(prefix="spring.secondDatasource")
public DataSource secondaryDataSource() {
    return DataSourceBuilder.create().build();
}

The @Primary annotation designates the primary data source for use by default.

Autowiring Data Sources

To inject the data sources into repositories or services, define a data source bean like so:

@Autowired
private DataSource secondaryDataSource;

This example retrieves the secondary data source for use within the annotated class. Similarly, you can autowire the primary data source as needed.

The above is the detailed content of How to Configure Multiple Data Sources in Spring Boot?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn