51

@Configurationjava-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が含まれるようにします。誰かが私がそれを行う方法を知っていますか?

4

3 に答える 3

99

これは実際にはかなり単純なものになりました。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構成には、JavaConfigクラス内で定義されたすべてのBean定義が含まれるようになりました。

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

于 2013-01-09T20:12:59.520 に答える
7

または、を使用するannotation-configこともできますcomponent-scan。次に、構成BeanをXMLに含める必要はありません。

<context:component-scan base-package="[fully qualified package path]" />

詳細については、<context:annotation-config>と<context:component-scan>の違いを参照してください。

于 2018-05-30T10:54:41.587 に答える
-1

あるべき:

spring-javaconfig-<version>.jar
于 2012-11-06T16:21:08.597 に答える