Spring Bootで複数データソースの設定

複数のデータソースを設定するには、各データソースの構成を作成し、各データソースに対応する Bean を作成します。以下は、デュアルデータソースを設定する手順です。

1. `application.properties` または `application.yml` ファイルで、異なるプレフィックスを使用して 2 つのデータソースの接続情報を設定します。例:
“`properties
# 最初のデータソース
spring.datasource.url=jdbc:mysql://localhost:3306/db1
spring.datasource.username=user1
spring.datasource.password=pass1
# 2 番目のデータソース
spring.datasource.secondary.url=jdbc:mysql://localhost:3306/db2
spring.datasource.secondary.username=user2
spring.datasource.secondary.password=pass2
“`

2. 2 つのデータソースの構成クラスを作成し、それぞれ `DataSourceProperties` クラスを継承し、プレフィックスを指定するために `@ConfigurationProperties` アノテーションを使用します。例:
“`java
@Configuration
@ConfigurationProperties(prefix = “spring.datasource”)
public class DataSource1Config extends DataSourceProperties {

@Bean
@Primary
public DataSource dataSource1() {
return createDataSource();
}
}

@Configuration
@ConfigurationProperties(prefix = “spring.datasource.secondary”)
public class DataSource2Config extends DataSourceProperties {

@Bean
public DataSource dataSource2() {
return createDataSource();
}
}
“`

3. メイン構成クラスで `@EnableTransactionManagement` アノテーションを使用してトランザクション管理を有効にし、`@MapperScan` アノテーションを使用して MyBatis の Mapper インターフェースの場所を指定します。例:
“`java
@SpringBootApplication
@EnableTransactionManagement
@MapperScan(basePackages = “com.example.mapper”)
public class Application {

public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
“`

4. データソースが必要な場所で、`@Qualifier` アノテーションを使用して使用するデータソースを指定します。例:
“`java
@Service
public class UserService {

@Autowired
@Qualifier(“dataSource1”)
private DataSource dataSource1;

@Autowired
@Qualifier(“dataSource2”)
private DataSource dataSource2;

// dataSource1 または dataSource2 を操作
}
“`

これらの手順に従うことで、2 つのデータソースを設定して使用できます。

bannerAds