Ich fange gerade erst mit Spring an und versuche, den Dreh rauszukriegen. Aber ich bin auf ein Problem gestoßen: Mein @Autowired schlägt immer wieder fehl.
In meinem spring.xml
Ich habe das hier:
<!--Handle @Autowired-->
<context:annotation-config />
<context:component-scan base-package="org.MYPROJECT">
<context:include-filter type="regex" expression=".*"/>
</context:component-scan>
Wenn einige Tests ausgeführt werden, schlägt dies fehl (ich zeige nur die letzte Ausnahme, da sie die wichtigste ist)
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [org.quackbot.dao.AdminDAO] 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)}
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$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:474)
... 50 more
Ich versuche also, das Problem zu beheben, indem ich die Bean manuell zur Konfiguration hinzufüge
<bean id="AdminDAO" class="org.quackbot.dao.hibernate.AdminDAOHibernate">
</bean>
Führen Sie es erneut aus, jetzt erhalte ich Folgendes
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [org.quackbot.dao.AdminDAO] is defined: expected single matching bean but found 2: [adminDAOHibernate, AdminDAO]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:796)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:703)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:474)
... 50 more
Es scheint, dass ich bei der Verwendung von Spring einfach nicht gewinnen kann... Zuerst beschwert er sich, dass die Beans nicht existieren, und wenn ich sie anführe, beschwert er sich, dass es zu viele sind. Was ist denn da los? Warum kann es nicht die richtigen Beans laden?