2011-12-26 11 views
5

をautowireできませんでした。は、私はこれは私の春のXML構成です。このエラー</p> <pre><code>org.springframework.beans.factory.BeanCreationException: Could not autowire method: </code></pre> <p>を取得しています方法

<bean ...> 
... 
    <property name="InfoModel" ref="InfoModel"></property> 
</bean> 

は、ここで私は

private InfoModel infoModel; 

    @Autowired 
    public void setInfoModel(InfoModel infoModel) { 
    this.infoModel= infoModel; 
    } 

すると、私は何かが欠けアムJavaクラスでこれをオートワイヤリングしています私のコードです。私はInterfaceInfoModelをautowireにする必要があると思いますか?

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.model.InfoModel] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {} 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:920) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:789) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:703) 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:547) 
+1

InfoModelクラスを投稿できますか?私はそれが具体的なクラスだと思います。 –

+2

あなたの例外スタックトレースに関する少し詳しい情報を投稿してください。 –

+0

InfoModelクラスは、いくつかの値を初期化します。 –

答えて

11

あなたが@Autowiredを行う場合は、XMLでのプロパティとしてそれをマークする必要はありません。ちょうどあなたがInfoModel

のためのあなたのXMLでBean定義を必要とするXMLでBeanとしてInfoModelを宣言し、あなたのために、XMLからあなたが

を合計InfoModel

を注入しているBeanをpropertyを削除あなたはpropertyをXMLから削除する必要があります

あなたのコンテキストを作成したことを確認してくださいアノテーションの追加によって駆動される

<context:annotation-config /> 
+0

アノテーションを使用している場合、XMLに入れるのではなく、 'InfoModel'の型レベルに' @ Component'を置くだけです。それは非常に似ていますが。 –

0

私は個人情報の前に@Autowiredを書くべきだと思います。宣言。 jigarで述べたようにXMLからエントリを削除します。

+0

'@ Autowired'アノテーションをフィールドまたはメソッド・アクセサに置くことは同じです。 –

0

InfoModelクラスに、タイプレベルの注釈(@Component,、または@Repositoryなど)を適切に付記しましたか?それらのすべては非常に似ています。 InfoModelに正しく注釈が付いていないと、この有名な「No matching bean ...」エラーが表示されます。このように見えるように@ComponentであなたのInfoModelクラスに注釈を試してみてください:スタックトレースが前記タイプの一致豆がないと言う

@Component 
public class InfoModel { 
    // code 
} 
1

場合、それは間違っているものです。

InfoModel BeanをSpringアプリケーションコンテキストに追加します。同じxml構成でBeanを宣言することによって:

<bean id="InfoModel" class="com.model.InfoModel" /> 

btwです。 Bean識別子の最初の文字を大文字にするべきではなく、変数と同じ命名規則に従ってください。 lowerCamelCase。 依存関係を自動配線して明示的に注入することも冗長です。

関連する問題

 関連する問題