私は、複数のインスタンスを作成する方法を知っているBeanクラスを。しかし、今私は一連のクラスを持っています、例えば:
class AppleInModule {
@Autowired RedisTemplate template; // <-- just any *external* dependencies
@Autowired OrangeInModule orange; // <-- dependencies to *internal* classes of this package
@Value("${the_module.apple.some_config_value}") String configValue; // <-- application.yml config values
}
class OrangeInModule {
... // similar
}
次に、次のような2つのシリーズのインスタンスを作成します。
mymodule.apple_1(「orange」はorange_1になり、「configValue」は「123」になります)、mymodule.orange_1
mymodule.apple_2(「orange」はorange_2になり、「configValue」は「456」になります)、mymodule.orange_2
質問:それを行う方法は?どうもありがとう!
@Qualifier
アノテーションを使用して、同じクラスの2つのBeanを区別できます。
アプリケーションのコンテキストで:
@Bean(name="orange1")
public OrangeInModule orange1() {
...
}
@Bean(name="orange2")
public OrangeInModule orange2() {
...
}
そしてあなたの配線クラスで:
@Autowired
@Qualifier("orange1")
private OrangeInModule orange1;
@Autowired
@Qualifier("orange2")
private OrangeInModule orange2;
代わりに、複数のインスタンスがあり、それらすべてを取得したい場合は、のリストを自動ワイヤリングOrangeInModule
できます。これは、このクラスの使用可能なすべてのBeanを保持します
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加