gpt4 book ai didi

java - Spring JavaConfig-NoSuchBeanDefinitionException : No unique bean of type

转载 作者:行者123 更新时间:2023-11-29 06:09:54 24 4
gpt4 key购买 nike

我想用一个小测试用例来测试 Spring @Configuration,但它会抛出错误

org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.mycompany.MavenVaadinSpring.service.UserManager] is defined:

我做错了什么?我的代码如下:

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();
}

堆栈跟踪:

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)

最佳答案

看来您在这里使用的是独立的 spring-javaconfig 项目(由 .config.java 打包和使用 JavaConfigApplicationContext 类证明)。该项目自包含在 Spring 3.0 中后不再受支持。封装变了,JavaConfigApplicationContext现在叫AnnotationConfigApplicationContext。但是,总体编程模型是相同的。

针对 Spring 3 的发行版给这个相同的场景一个镜头,看看你是否得到相同的结果。如果您需要 GA 版本,现在可以使用 Spring 3.0.6;如果您可以处理里程碑,请尝试使用 Spring 3.1 M2,甚至是 Spring 3.1 的夜间快照。您会发现 Java 配置支持在这些更高版本中得到了显着增强。

关于java - Spring JavaConfig-NoSuchBeanDefinitionException : No unique bean of type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7295642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com