私は複数のstackoverflowの質問で、applicationContext.getbeanは悪い考えです。与えられた種類の豆を得るためのベストプラクティス
Why is Spring's ApplicationContext.getBean considered bad?
私は春に指定されたタイプの豆をスキャンするより良い方法があるかどうかを知りたいです。
私の使用例は、春の起動時に特定の型のBeanを取得し、それらのBeanでいくつかのメソッドを呼び出すことです。
私が知っていることから、これを行う方法は2つしかありません。
- Spring Beanにアプリケーションコンテキストをautowireし、appContext.getBeansOfTypeを使用します。
フックポストプロセッサで、私はただ一種類の豆を処理するポストプロセッサにフックを感じる(タイプのBeanインスタンス)
がない場合は
によって指定されたタイプの私達の豆をフィルタリング良いアイデア。これは、すべてのBean初期化をインターセプトするためです。
誰かが私のユースケースを解決するより良いアプローチを提案できますか? (指定された型のgetBeans)
答えに感謝します。もう一つ質問があります。この場合、applicationContext.getBeansOfTypeを使用する際に何が問題になりますか?コードを具体的なクラスに結合するのではありません。私たちは、それを抽象クラス(または可能であればインターフェース)に結合しています。この抽象クラスは、そのタイプのBeanのリストをautowiringすることによって、やっています。 – yaswanth
@yaswanth:あなたがリンクしている質問には、はるかに良いと思います。私の驚いたことに、この質問の既存の回答のどれも、効果を見ることができる直接の例はありません。だから私は1つを追加しました:http://stackoverflow.com/a/41853545/327301 – yankee