Browse Source

Merge branch '5.1.x'

pull/23098/head
Sam Brannen 7 years ago
parent
commit
e92ace7301
  1. 4
      spring-beans/src/main/java/org/springframework/beans/factory/BeanFactory.java
  2. 3
      spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java
  3. 260
      spring-beans/src/test/java/org/springframework/beans/factory/DefaultListableBeanFactoryTests.java

4
spring-beans/src/main/java/org/springframework/beans/factory/BeanFactory.java

@ -208,7 +208,7 @@ public interface BeanFactory {
<T> T getBean(Class<T> requiredType, Object... args) throws BeansException; <T> T getBean(Class<T> requiredType, Object... args) throws BeansException;
/** /**
* Return an provider for the specified bean, allowing for lazy on-demand retrieval * Return a provider for the specified bean, allowing for lazy on-demand retrieval
* of instances, including availability and uniqueness options. * of instances, including availability and uniqueness options.
* @param requiredType type the bean must match; can be an interface or superclass * @param requiredType type the bean must match; can be an interface or superclass
* @return a corresponding provider handle * @return a corresponding provider handle
@ -218,7 +218,7 @@ public interface BeanFactory {
<T> ObjectProvider<T> getBeanProvider(Class<T> requiredType); <T> ObjectProvider<T> getBeanProvider(Class<T> requiredType);
/** /**
* Return an provider for the specified bean, allowing for lazy on-demand retrieval * Return a provider for the specified bean, allowing for lazy on-demand retrieval
* of instances, including availability and uniqueness options. * of instances, including availability and uniqueness options.
* @param requiredType type the bean must match; can be a generic type declaration. * @param requiredType type the bean must match; can be a generic type declaration.
* Note that collection types are not supported here, in contrast to reflective * Note that collection types are not supported here, in contrast to reflective

3
spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java

@ -342,6 +342,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public <T> T getBean(Class<T> requiredType, @Nullable Object... args) throws BeansException { public <T> T getBean(Class<T> requiredType, @Nullable Object... args) throws BeansException {
Assert.notNull(requiredType, "Required type must not be null");
Object resolved = resolveBean(ResolvableType.forRawClass(requiredType), args, false); Object resolved = resolveBean(ResolvableType.forRawClass(requiredType), args, false);
if (resolved == null) { if (resolved == null) {
throw new NoSuchBeanDefinitionException(requiredType); throw new NoSuchBeanDefinitionException(requiredType);
@ -351,6 +352,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
@Override @Override
public <T> ObjectProvider<T> getBeanProvider(Class<T> requiredType) throws BeansException { public <T> ObjectProvider<T> getBeanProvider(Class<T> requiredType) throws BeansException {
Assert.notNull(requiredType, "Required type must not be null");
return getBeanProvider(ResolvableType.forRawClass(requiredType)); return getBeanProvider(ResolvableType.forRawClass(requiredType));
} }
@ -1105,6 +1107,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
@Override @Override
public <T> NamedBeanHolder<T> resolveNamedBean(Class<T> requiredType) throws BeansException { public <T> NamedBeanHolder<T> resolveNamedBean(Class<T> requiredType) throws BeansException {
Assert.notNull(requiredType, "Required type must not be null");
NamedBeanHolder<T> namedBean = resolveNamedBean(ResolvableType.forRawClass(requiredType), null, false); NamedBeanHolder<T> namedBean = resolveNamedBean(ResolvableType.forRawClass(requiredType), null, false);
if (namedBean != null) { if (namedBean != null) {
return namedBean; return namedBean;

260
spring-beans/src/test/java/org/springframework/beans/factory/DefaultListableBeanFactoryTests.java

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save