提交 ece727bf 编写于 作者: J Juergen Hoeller 提交者: unknown

Introduced NoUniqueBeanDefinitionException as a dedicated subclass of NoSuchBeanDefinitionException

Issue: SPR-10194
上级 0efdd3d5
/* /*
* Copyright 2002-2012 the original author or authors. * Copyright 2002-2013 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
...@@ -17,8 +17,10 @@ ...@@ -17,8 +17,10 @@
package org.springframework.context.annotation; package org.springframework.context.annotation;
import java.util.Map; import java.util.Map;
import java.util.regex.Pattern;
import org.junit.Test; import org.junit.Test;
import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -27,7 +29,7 @@ import org.springframework.context.annotation6.ComponentForScanning; ...@@ -27,7 +29,7 @@ import org.springframework.context.annotation6.ComponentForScanning;
import org.springframework.context.annotation6.ConfigForScanning; import org.springframework.context.annotation6.ConfigForScanning;
import org.springframework.context.annotation6.Jsr330NamedForScanning; import org.springframework.context.annotation6.Jsr330NamedForScanning;
import static java.lang.String.*; import static java.lang.String.format;
import static org.hamcrest.Matchers.*; import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import static org.springframework.util.StringUtils.*; import static org.springframework.util.StringUtils.*;
...@@ -120,13 +122,14 @@ public class AnnotationConfigApplicationContextTests { ...@@ -120,13 +122,14 @@ public class AnnotationConfigApplicationContextTests {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Config.class); AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
// attempt to retrieve a bean that does not exist // attempt to retrieve a bean that does not exist
Class<?> targetType = java.util.regex.Pattern.class; Class<?> targetType = Pattern.class;
try { try {
Object bean = context.getBean(targetType); Object bean = context.getBean(targetType);
fail("should have thrown NoSuchBeanDefinitionException, instead got: " + bean); fail("should have thrown NoSuchBeanDefinitionException, instead got: " + bean);
} catch (NoSuchBeanDefinitionException ex) { }
catch (NoSuchBeanDefinitionException ex) {
assertThat(ex.getMessage(), containsString( assertThat(ex.getMessage(), containsString(
format("No unique bean of type [%s] is defined", targetType.getName()))); format("No qualifying bean of type [%s] is defined", targetType.getName())));
} }
} }
...@@ -137,10 +140,11 @@ public class AnnotationConfigApplicationContextTests { ...@@ -137,10 +140,11 @@ public class AnnotationConfigApplicationContextTests {
try { try {
context.getBean(TestBean.class); context.getBean(TestBean.class);
} catch (RuntimeException ex) { }
catch (NoSuchBeanDefinitionException ex) {
assertThat(ex.getMessage(), assertThat(ex.getMessage(),
allOf( allOf(
containsString("No unique bean of type [" + TestBean.class.getName() + "] is defined"), containsString("No qualifying bean of type [" + TestBean.class.getName() + "] is defined"),
containsString("tb1"), containsString("tb1"),
containsString("tb2") containsString("tb2")
) )
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册