2017-05-03 16 views
0

私は@Configurationと注釈を付けられたDAOクラスを持っています。このDAOクラスでは、@Beanプロパティを@Autowireできない

@Bean 
public MyDao myDao(){ 
    return new MyDao(dataSource); 
} 

と定義されています。このサービスクラスでこのDAOを使用したいと思います。だから私は@Serviceとサービスクラスを注釈付きとテストを実行している間

@Autowired private IMyDao myDao; 

を使用し、私は以下のエラーを取得する

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [IMyDao] 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)} 
+0

これを追加あなたがいるかどうかチェックすることができ'myDao()'は実際に呼び出されますか? – StanislavL

+0

どのように異なる設定ファイルをロードしていますか? –

+0

問題の内容を正確に伝えるだけの情報がありません。 'MyDao'は' IMyDao'を実装していますか?完全なDAO​​クラスはどのように見えますか? DAOクラスはコンポーネントスキャンに含まれていますか?別のクラスではなく、DAOクラス自体の '@Configuration'には奇妙に思えます。 – Jesper

答えて

0

アプリケーションのコンテキストに

<context:component-scan base-package="your top level package"> 
    <context:include-filter type="regex" 
    expression="com\.your package\..*Dao.*" /> 
    <context:include-filter type="regex" 
    expression="com\.your package\..*Service.*" /> 
    <context:exclude-filter type="annotation" 
    expression="org.springframework.stereotype.Controller" /> 
    </context:component-scan> 
+0

彼はDAOのために '@ Configuration'クラスを使用しています。彼が実際にすべきことは、彼が使用しているXMLにこの設定クラスを追加することです(または '@ Configuration'クラスを検出するコンポーネントスキャンを含めることです)。 –

+0

@ M.Deinumそれは私の答えが意味するものです。 –

+0

あなたの答えに見られるものによるものではありません.... * MyDaoを定義したパッケージの名前* * daoではなくconfigを参照する必要があります。 –

関連する問題