[解決済み] オートワイヤーリファレンスビーンズのタイプ別リスト
2023-05-29 13:51:33
質問
のオブジェクトのリストを持つクラスがあります。
Daemon
型のオブジェクトのリストを持っています。
class Xyz {
List<Daemon> daemons;
}
私のspringの設定はこんな感じです。
<bean id="xyz" class="package1.Xyz">
<property name="daemons" ref="daemonsList">
</bean>
<bean id="daemon1" class="package1.DaemonImpl1"/>
<bean id="daemon2" class="package1.DaemonImpl2"/>
<bean id="daemonsList" class="java.util.ArrayList">
<constructor-arg>
<list>
<ref bean="daemon1" />
<ref bean="daemon2" />
</list>
</constructor-arg>
</bean>
現在、各デーモン実装をリストで明示的に配線する代わりに、すべてのビーンタイプの
Daemon
タイプのすべてのビーンをリストに自動的に配線することは可能でしょうか。私が解決しようとしている問題は、もし誰かが
Daemon
クラスの新しい実装のビーンを作成し、それをリストに配線するのを忘れた場合です。
私はこの質問をstackoverflowのどこかで見たことがありますが、再びそれを見つけることができません。それをお詫びします。
どのように解決するのですか?
このように動作するはずです(XMLからArrayList Beanを削除してください)。
public Class Xyz {
private List<Daemon> daemons;
@Autowired
public void setDaemons(List<Daemon> daemons){
this.daemons = daemons;
}
}
XMLでこれをやる方法はないと思うのですが。
ご覧ください。
3.9.2.
@Autowired
と
@Inject
:
アプリケーションコンテキストから特定のタイプのすべてのビーンを提供することも可能です。 アノテーションを追加することで、ApplicationContextから特定のタイプのすべてのビーンを提供することも可能です。 にアノテーションを追加することで、ApplicationContextから特定のタイプのすべてのビーンを提供することも可能です。
public class MovieRecommender {
@Autowired
private MovieCatalog[] movieCatalogs;
// ...
}
<ブロッククオート
型付きコレクションも同様です。
public class MovieRecommender {
private Set<MovieCatalog> movieCatalogs;
@Autowired
// or if you don't want a setter, annotate the field
public void setMovieCatalogs(Set<MovieCatalog> movieCatalogs) {
this.movieCatalogs = movieCatalogs;
}
// ...
}
ちなみに、Spring 4.xの時点では
を使うと、これらのリストを自動的に並べることができます。
@Ordered
という機構を使うことで、自動的に並び替えができるようになりました。
.
関連
-
Collections.sortがdoubleでソートできない問題を完璧に解決する。
-
Solve モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory エラー
-
が 'X-Frame-Options' を 'sameorigin' に設定したため、フレーム内に存在する。
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
Javaがエラーで実行される、選択が起動できない、最近起動したものがない
-
Java:未解決コンパイル問題の解決方法
-
1分でわかる!恋人の写真をIDEAの背景画像に設定する方法【おすすめ集
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Java 8 List<V> を Map<K, V> に変換する。
-
[解決済み] 同じインタフェースを実装する2つのビーンを自動配線する - 自動配線するデフォルトのビーンを設定する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Springの設定でxsdファイルのバージョン番号を設定しない方が良い理由
-
Uncaught ReferenceError: は定義されていません。
-
セミコロン期待値エラー解決
-
keytool error: java.io.FileNotFoundException: cacerts (アクセス拒否されました。)
-
Javaがテキストファイルを読み込む
-
アノテーション「@Retention」の役割
-
Java appears タイプEを囲むインスタンスがアクセスできない。
-
Javaがエラーで実行される、選択が起動できない、最近起動したものがない
-
CAS 5.1.8でhttpをサポートし、認証されていない認可サービスエラーのプロンプトが表示される問題を解決した。
-
[解決済み] util スキーマを使用した List の自動配線で NoSuchBeanDefinitionException が発生する。