Spring – NoUniqueBeanDefinitionException: Es ist keine qualifizierende Bean des Typs definiert: einzelne passende Bean erwartet, aber 2 gefunden:

Im Frühjahr können wir die Objekte mithilfe der Annotation @Autowired automatisch vernetzen. Diese Annotation verfügt über die Intelligenz, die relevantesten Typen für die Referenzen zu erkennen, indem sie die verschiedenen Kriterien wie Variablennamen, Objekttyp, Superklasse, generischen Typ, Qualifizierer usw. betrachtet. In einigen Fällen werden jedoch zwei oder mehr Beans gefunden Übereinstimmung mit denselben Filterkriterien, bei denen das Objekt nicht eingefügt werden kann. In diesen Situationen erhalten Sie die folgende Ausnahme.

Lesen Sie auch:

  • Frühling 4-Tutorials
  • Spring 4-Funktionen
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'beans': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: javabeat.net.spring.core.Emp javabeat.net.spring.core.InjectBeans.managerService; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type (javabeat.net.spring.core.Emp) is defined: expected single matching bean but found 2: manager,admin
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:292)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1180)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:300)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:296)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:660)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
	at javabeat.net.spring.core.SpringDemo.main(SpringDemo.java:7)

Um diese Ausnahme zu beheben, müssen Sie dem Federbehälter klare Anweisungen geben, um die richtigen Objekte zu identifizieren. Entweder können Sie den Wert an die @Qualifier-Annotation übergeben oder den Unterschied auf Referenznamen festlegen.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen