両方のコンテキストにBeanが含まれるようにJava-configクラスをXML-configにインポートするにはどうすればよいでしょうか? 質問する

両方のコンテキストにBeanが含まれるようにJava-configクラスをXML-configにインポートするにはどうすればよいでしょうか? 質問する

@Configuration java-config クラスを XML 構成にブートストラップする必要があるプロジェクトがあります。

そのためには、次の Bean 定義も (@Configuration アノテーションが付けられたクラスの Bean 定義とともに) 含める必要があると読みました。

<bean class="org.springframework.config.java.process.ConfigurationPostProcessor" />

しかし、最終的には次のエラーが発生します。

Caused by: java.lang.ClassNotFoundException: org.springframework.config.java.process.ConfigurationPostProcessor

どこかに瓶が一つ足りないのだと思いますが、ウェブでいろいろ検索してもまだ答えは見つかりません。どなたか助けていただければ幸いです。よろしくお願いします。

編集: どうやら、私はもう最新ではない古いドキュメントを読んでいたようです。ちょっと戻ってみましょう。私のプロジェクトには、古い XML ベースの構成が含まれています。新しいコードはすべて「Java-config」を使用しています。そうは言っても、コンテキストは完全に分離されているようです。Java-config クラスを XML 構成に「インポート」して、両方のコンテキストに特定の Bean が含まれるようにしたいと思います。その方法を誰か知っていますか?

ベストアンサー1

これは実際にはかなり簡単でした。Java-config の Bean 定義を XML-config に取り込むには、Java-config クラスを XML-config 内の Bean として定義するだけです。追加の jar は必要ありません。

@Configuration
public class SomeJavaConfig {

    @bean
    ... [bean definition]
}

XML 設定内で、このクラスを Bean として定義します。

<!-- needed to pick up the annotated java-config -->
<context:annotation-config />

<!-- Importing java-config class, which are annotated with @Configuration -->
<bean name="SomeJavaConfig" class="[fully qualified path].SomeJavaConfig" />

異なるコンテキストの一部である可能性のある XML 構成には、JavaConfig クラス内で定義されたすべての Bean 定義が含まれるようになりました。

更新しました- 回答に以下の Alan Franzoni のコメントを含めました。

おすすめ記事