2013-10-14 22 views
23

xmlではなくjavaの設定でspringを設定する新しいアプリケーションをビルドしています。このアプリは、XMLスタイルの設定を使用するモジュールに依存しています。私が試してみて、私のアプリを起動すると、私は次のエラーを取得する:xmlとJavaの設定をバラと組み合わせる

No qualifying bean of type [com.myModule.myServiceImp] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 

このBeanは、モジュールのapplicationContext.xmlをして宣言する必要があります。これを処理する適切な方法は何ですか?私はアプリのweb.xmlで一緒にアプリケーション・コンテキストを架線された場合、私は同じように私は単にそれを追加してみました:

<context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value> 
      classpath:com/myModule/appbase-context.xml 
      com.myApp.AppConfig 
     </param-value> 
    </context-param> 

しかし、私はまだ同じエラーを得ました。これを行う適切な方法は何ですか?

答えて

44

設定クラスでは、xml設定を@ImportResourceアノテーションでインポートできます。このような

何か:

<context-param> 
    <param-name>contextClass</param-name> 
    <param-value> 
     org.springframework.web.context.support.AnnotationConfigWebApplicationContext 
    </param-value> 
</context-param> 
+0

I:

@Configuration @ImportResource({"classpath:appbase-context.xml"}) public class AppConfig { // @Bean definitions here... } 

あなたは春のJavaの設定を使用しているとき、あなたはあなたのアプリケーションコンテキストに使用するクラスを言う追加context-paramを指定する必要があり、覚えておいてください2番目の部分はすでに持っていますが、リマインダーに感謝します。 context.xmlについては、それをインポートするだけで済むのですか?それは私のために残りますか?それとも何とか「実行」する必要がありますか? –

+1

'ApplicationContext'が' @ Configuration'クラスの読み込みをブートストラップしているとき、この注釈をスキャンして自動的にロードします。 –

+1

@ImportResourceがそれを実行します。 –

関連する問題