同じ名前のBeanグループに名前を付ける方法はありますか?たとえば、Bean A、B、C、D、EIはBean A、B、Cを読み込むことができます。名前group1、名前bean2のBean D、Eをロードします。同じ名前のBeanの名前付けグループ
0
A
答えて
0
@Autowire
フィールドに@Qualifier("mySpecialImplementation")
を追加することで、読み込まれるインターフェイスの実装を指定できます。そのため、実装には@Component("mySpecialImplementation")
とマークする必要があります。
基本的には、具体的な実装に一意の(String)識別子を割り当てています。特別な実装をロードするには、QualifierアノテーションでIDを指定します。
本当に "グループ"のBeanをロードする必要がある場合:このグループ内にロードするすべてのBeanの自動配線フィールドを含む新しい "グループ - Bean"を作成してください。新しい "group-bean"を注入すると、そのグループ内の他のすべてのbeanもロードされます。
例:基本的にはそう
@Autowire
ApplicationContext context;
List<Object> loadBeanGroup(List<String> beanNames){
List<Object> result = new LinkedList<>();
for(String name: beanNames){
result.add(context.getBean(name));
}
return result;
}
あなたは:
@Autowired
Group1 group1;
あなたが本当にリストをロードする必要がある場合
はなく、事前に定義されたグループのいくつかの種類によって
@Service
class Group1 {
@Autowired
private A a;
@Autowired
private B b;
@Autowired
private C c;
...
}
@Service
class Group2 {
@Autowired
private D d;
@Autowired
private E e;
...
}
読み込み、それをBean名(あなたのグループ)を持つ文字列のリストを定義することができます。リスト内のすべてのBeanをロードします。
関連する問題
- 1. グループと同じ名前のキーが
- 2. Laravel - 名前付けのルート(GET、POST、DELETE)は同じ名前ですか?
- 3. DIV IDと同じ名前の名前付きアンカー(A)
- 4. 同じ名前
- 5. 名前を付けるクラスと名前空間は同じですか?
- 6. は、同じ名前
- 7. ジャクソン同じ名前
- 8. 同じ名前が
- 9. が同じ名前
- 10. 同じ名前のMatlab Array
- 11. 同じ名前のC#プロパティ
- 12. Excel.Workbook.SaveAs(...)同じ名前のファイル
- 13. 異なる名前の同じ名前のディレクトリの名前を変更する
- 14. アプリケーションメインエンティティの名前付け
- 15. RESTfulパスの名前付け
- 16. ファイルの名前付け、Python
- 17. RESTサービスリソースの名前付け
- 18. Javaオブジェクトの名前付け
- 19. テンプレートの名前付け
- 20. PHPファイルの名前付け
- 21. サブプロセスの名前付け
- 22. Powershellの名前付けショートカット
- 23. 同じ名前の関数を同じ名前のパッケージからインポートする
- 24. Excelシートの同じ名前のタブの名前を変更
- 25. 匿名ファイルポインタの名前付け
- 26. C#で名前空間とクラスの同じ名前を避けるには?
- 27. アリ:同じ名前のサブディレクトリの名前を変更し
- 28. 名前がbashのディレクトリと同じ名前のファイルを開く
- 29. 複数の同じ名前のグループの定義やシステム
- 30. Beanの名前があいまいで、同じBeanに2回マッチする
多分あなたは他のbeanを注入してロードするbean group1を作成できますか?オブジェクトは何ですか? – DamienB
オブジェクトとは何ですか? – pppavan
なぜあなたはそれをしたいですか?理由はありますか?それとも、単一のエントリで多くのbeanを呼び出すだけですか? – DamienB