Spring JavaConfig – NoSuchBeanDefinitionException:没有类型的唯一bean
我想用一个小测试用例来测试Spring @Configuration
,但它会抛出错误
org.springframework.beans.factory.NoSuchBeanDefinitionException:没有定义[com.mycompany.MavenVaadinSpring.service.UserManager]类型的唯一bean:
我做错了什么? 我的代码如下:
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类certificate)。 自从包含在Spring 3.0中以来,该项目不再受支持。 包装已更改,JavaConfigApplicationContext现在称为AnnotationConfigApplicationContext。 然而,整体编程模型是相同的。
针对Spring 3的版本提供相同的场景,看看你是否得到了相同的结果。 如果您需要GA版本,现在可以使用Spring 3.0.6; 如果您可以处理里程碑,请尝试Spring 3.1 M2,甚至是Spring 3.1的夜间快照。 您会发现Java配置支持在这些更高版本中得到了显着增强。
- 正则表达式找到整个单词
- Java Threads错误:线程错误中的exception加上数组索引超出范围exception加上Socket Exception / Connection Exception
- Javagenerics中不会抛出ClassCastException
- 对象为 中的itemValue
- OAuth Google API for Java无法冒充用户
- 如何检查java.lang.reflect.Type是否为Enum
- MissingFormatArgumentException错误
- 如何杀死BufferedInputStream .read()调用
- Java弱哈希映射 – 需要根据值的弱点而不是键来删除条目