@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 のコメントを含めました。