2012-11-06 4 views
28

@Configuration java-configクラスをXML設定にブートストラップする必要があるプロジェクトがあります。両方のコンテキストにBeanがあるようにJava-configクラスをXML-configにインポートするには?

これを行うには、次のBean定義(@Configurationで注釈が付けられたクラスのBean定義とともに)も含める必要があることを読んでいます。

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

しかし、私は次のエラーを受信して​​しまう:

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

私はどこかにjarファイルを欠けていると想定する必要がありますが、私のさまざまなWeb検索はまだ答えをもたらしませんでした。どんな助けでも大歓迎です。ありがとう。

EDIT:明らかに、私は古いドキュメントを読んでいましたが、これはもう最新のものではありません。私をバックアップさせてください。私のプロジェクトには古いXMLベースの設定が含まれています。新しいコードはすべて「Java-config」を使用しています。それによると、文脈は明らかに完全に別個である。私は両方のコンテキストにこれらの特定のBeanがあるように、XML設定にjava-configクラスを 'インポート'したいと思います。誰も私がそれをどうやってできるか知っていますか?これは実際にはかなり簡単になってしまっ

spring-javaconfig-<version>.jar 

答えて

54

+27

サイドノート:はXML設定にも存在しなければなりません。そうしないと、javaconfigはインクルードされません。 –

+0

XML設定で既にConfigurationPostProcessorを定義している場合、は不要です! –

+0

タグは、すべてのSpring PostProcessorsを追加したばかりです。 –

1

はにする必要があります。 Java-config bean定義をxml-configに取得するには、Java-configクラスをXML-config内のbeanとして定義するだけです。余分な瓶は必要ありません。

@Configuration 
public class SomeJavaConfig { 

    @bean 
    ... [bean definition] 
} 

XML-config内では、このクラスを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-configは、JavaConfigクラス内で定義されたすべてのBean定義を持つようになりました。

更新済み - 答えに以下のようなAlan Franzoniのコメントが含まれています。

+6

明らかに、spring-javaconfig jarが削除されました。それはバージョン3.0でSpring Coreに移行する予定でした。 – Mostfoolish

関連する問題