1. ホーム

[解決済み】Spring Bootで2つのDataSourceを構成して使用する。

2022-03-31 12:31:35

質問

2つのデータソースを設定し、使用するにはどうすればよいですか?

例えば、1つ目のデータソースはこんな感じです。

application.properties

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

#second db ...

アプリケーションクラス

@SpringBootApplication
public class SampleApplication
{
    public static void main(String[] args) {
        SpringApplication.run(SampleApplication.class, args);
    }
}

を変更するにはどうすればよいですか? application.properties を使用して、別のデータソースを追加しますか?別のリポジトリで使用するために、どのように自動配線すればよいですか?

解決方法を教えてください。

はい、どうぞ。

application.properties ファイルに追加します。

#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

Configurationでアノテーションされたクラスに、以下のメソッドを追加します。

@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();
}