"If a worker wants to do his job well, he must first sharpen his tools." - Confucius, "The Analects of Confucius. Lu Linggong"
Front page > Programming > How to Configure Multiple Data Sources in Spring Boot?

How to Configure Multiple Data Sources in Spring Boot?

Published on 2024-12-21
Browse:326

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.

Latest tutorial More>

Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.

Copyright© 2022 湘ICP备2022001581号-3