0

特定のクラス(またはサブクラス)のすべてのBeanをSpringコンテキストから取得したいと思います。ただし、これはxmlによって具体的に定義されたBeanのみを検出します。アノテーションなどで定義されているBeanは、@Serviceここでは検出されません。(アプリ内では検出され、初期化され、完全に自動配線されます)。

GenericXmlApplicationContext ctx = new GenericXmlApplicationContext("*-context.xml");
Map<String, DataUpdater> beans = ctx.getBeansOfType(MyClass.class, true, true);
// why are beans missing?
4

3 に答える 3

0

申し訳ありませんが、いくつかのばかげたエラー... xml ファイルを適切にロードしていませんでしたが、バックグラウンド プロセスが正しいファイルで並列 xml コンテキストを作成していたため、Bean がインスタンス化されていました。

于 2013-02-05T16:26:03.840 に答える
-1

同様の問題を見たことがありますがgetBeansOfType()、正しく動作することはありませんでした。私の解決策:

@Autowired
public void setMyClasses( List<MyClass> beans ) {
    ...
}

Spring は何らかの形でリストを収集し、それを注入します。リストがいつ注入されるかを知る必要がない場合は、フィールドとして注入することもできます。

@Autowired
private List<MyClass> beans;
于 2013-02-05T15:24:06.120 に答える
-1

Bean も検索する必要があります

AnnotationConfigApplicationContext

XmlContext と AnnotationContext で検索する場合は、それらを組み合わせる必要があります

 @ImportResource("classpath:xmlcontext.xml")

注釈付きの設定で

または、インターフェースを実装ApplicationContextAwareして、それが提供するコンテキストで検索することもできます。

于 2013-02-05T15:24:07.913 に答える