0

自動配線が正常に機能しない理由がわかりません。Spring 3を使用する非Webアプリケーションがあるため、アプリケーションのメインメソッドで、次のようなアプリケーションコンテキストを作成するように設定しました:

    ApplicationContext ctx = new ClassPathXmlApplicationContext(
                        DEFAULT_APP_CONTEXT);

そして、.xmlファイルの先頭には、自動配線が機能するために必要なものがあります。

<context:annotation-config />
<context:component-scan base-package="star,hw" />

しかし、うまくいきません。パッケージの@Repository下にクラスレベルのアノテーションを持つサービスクラスがありますが、それをしようとすると次のようになります:hw@Autowire

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'inventoryDAO' is defined
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:527)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1083)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:274)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
    ... 77 more

ログファイルで気付いた奇妙なことの1つ:

Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@4440ece0: defining beans [*skipping*, inventoryDAOImpl, *skipping*]

それは私が@Repository使用したクラスですが、実装していますInventoryDAO。そこに表示されるのは間違っていませんinventoryDAOImplか?何が悪いのかを理解するにはどうすればよいですか?

編集: わかりました、おそらく問題はありません@Autowire@Repository、Bean を正しく作成していないことが原因です。

4

1 に答える 1

1

試してみてください@Repository("inventoryDAO")

于 2011-06-22T00:56:52.130 に答える