Spring JavaConfig - NoSuchBeanDefinitionException: Keine eindeutige bean vom Typ
Ich würde gerne testen Frühjahr @Configuration
mit einem kleinen test-Fall, aber es wirft Fehler
org.springframework.Bohnen.factory.NoSuchBeanDefinitionException: Keine eindeutige bean des Typs [Kom.MeineFirma.MavenVaadinSpring.service.UserManager] definiert ist:
Was habe ich falsch gemacht? Mein code ist unten:
AppConfigTest.java
:
public class AppConfigTest {
public static void main(String[] args) {
JavaConfigApplicationContext context = new JavaConfigApplicationContext(AppConfig.class);
UserManager userManager = context.getBean(UserManager.class);
}
}
AppConfig.java
@Configuration
@ResourceBundles("classpath:jdbc-mysql")
public abstract class AppConfig {
@Bean
public BasicDataSource dataSource() {
BasicDataSource basicDataSource = new BasicDataSource();
return basicDataSource;
}
@Bean
public UserDao userDao() {
UserDao UDI = new UserDaoImpl();
UDI.setDataSource(dataSource());
return UDI;
}
@Bean
public UserManager userManager() {
UserManager UM = new UserManagerImpl();
UM.setUserDao(userDao());
return UM;
}
abstract @ExternalValue("jdbc.url") String url();
abstract @ExternalValue("jdbc.username") String username();
abstract @ExternalValue("jdbc.password") String password();
abstract @ExternalValue("jdbc.jdbc.driverClassName") String classname();
}
Stacktrace:
Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.mycompany.MavenVaadinSpring.service.UserManager] is defined:
at org.springframework.config.java.context.TypeSafeBeanFactoryUtils.getBean(TypeSafeBeanFactoryUtils.java:46)
at org.springframework.config.java.context.JavaConfigApplicationContext.getBean(JavaConfigApplicationContext.java:378)
at com.mycompany.MavenVaadinSpring.AppConfigTest.main(AppConfigTest.java:11)
- Balus Dank für die Verbesserung der outlook meine Frage
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es scheint, Sie sind mit dem standalone-Feder-javaconfig Projekt hier (was sich durch die .config.java Verpackung und Nutzung der JavaConfigApplicationContext Klasse). Dieses Projekt wird nicht mehr unterstützt seit seiner Aufnahme in Spring 3.0. Die Verpackung hat sich geändert, und JavaConfigApplicationContext heißt jetzt AnnotationConfigApplicationContext. Die gesamte Programmierung-Modell, jedoch, ist die gleiche.
Geben das gleiche Szenario ein Schuss gegen eine Veröffentlichung von Spring 3 und sehen Sie, wenn Sie die gleichen Ergebnisse erhalten. Wenn du ein GA-release, Spring 3.0.6 ist jetzt verfügbar; wenn Sie sich mit Meilensteinen, versuchen Sie, Spring 3.1 M2, oder sogar eine nächtliche Momentaufnahme der Spring 3.1. Sie finden Java-Konfiguration-Unterstützung wurde deutlich verbessert in diesen späteren Versionen.