spring-batchで複数DataSource定義時に使用する@BatchDataSource
spring-batchで複数のDataSourceを定義する場合、@BatchDataSource
でspring-batchのauto-configurationで使用する方を指定できる。@BatchDataSource
のjavadocによると2.2.0
で追加されたものらしい。
その定義は以下のようになっており、実態は単なる@Qualifier
。javadocによると典型的な使い方としては、@Primary
を付与するメインのDataSourceと、このアノテーションを付与するspring-batch用のセカンドDataSource、というもの。メインとなるDBと、メタデータ格納先DBが分かれてる場合にこれを使う、といった感じだろう。
/**
* Qualifier annotation for a DataSource to be injected into Batch auto-configuration. Can
* be used on a secondary data source, if there is another one marked as
* {@link Primary @Primary}.
*
* @author Dmytro Nosan
* @since 2.2.0
*/
@Target({ ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE, ElementType.ANNOTATION_TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Qualifier
public @interface BatchDataSource {
}
使用例。
@Bean
@BatchDataSource
public DataSource springBatchDs() {
return DataSourceBuilder.create().url("jdbc:h2:~/test").username("sa").password("").build();
}
@Bean
@Primary
public DataSource primaryDs() {
return DataSourceBuilder.create().url("jdbc:oracle:thin:system/oracle@localhost:11521/XEPDB1").username("system").password("oracle").build();
}
上記の例の場合、メインはOracle、メタデータ格納先をH2、としている。
従来もこういう設定が出来なかったわけではないが、専用アノテーションにより意図が明示しやすくなる、と思われる。
Author And Source
この問題について(spring-batchで複数DataSource定義時に使用する@BatchDataSource), 我々は、より多くの情報をここで見つけました https://qiita.com/kagamihoge/items/6f875e0907d23a0c1dd2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .