Kotlin関数のパラメータでは、常にパラメータのレベルで@Qualifier()
が使用されないようにする値があります。Kotlin関数で@Qualifierを操作する
同じアプリケーション内で頻繁にアクセスされるさまざまなデータベースの設定クラスに複数のDataSource
を作成したい場合は、これを構成するための推奨方法は何ですか?
Javaでかなり一般的だった以下のことは、Kotlinでは許可されていません。
@Configuration
class DatabaseAdminConfig {
@Bean
@ConfigurationProperties(prefix = "spring.ds_admin")
fun adminDataSource(): DataSource {
return DataSourceBuilder.create().build()
}
@Bean
fun adminJdbcTemplate(@Qualifier("adminDataSource") dsAdminDb: DataSource): JdbcTemplate {
return JdbcTemplate(dsAdminDb)
}
@ConfigurationProperties(prefix = "spring.ds_widget")
fun widgetDataSource(): DataSource {
return DataSourceBuilder.create().build()
}
@Bean
fun widgetJdbcTemplate(@Qualifier("widgetDataSource") widgetDataSource: DataSource): JdbcTemplate {
return JdbcTemplate(widgetDataSource)
}
}
ありがとうございます!うん、ここの例は、私が走っていた問題を示すために思いつく、もっとも簡単な非特定の人為的な例です。パラメータで@Qualifierを使用しようとするエラーは、「この注釈はターゲット 'valueパラメータ'には適用されません」です。 – sclarson
誤って 'javax.inject.Qualifier'アノテーションをインポートする必要があります。これは動作しません。 'org.springframework.beans.factory.annotation.Qualifier'アノテーションをインポートする必要があります。 – Strelok