Consistent use of SCOPE_PROTOTYPE and SCOPE_SINGLETON constants

Closes gh-19905
This commit is contained in:
Sam Brannen 2019-11-24 13:49:43 +01:00
parent 7bed4f36da
commit 59e250c93c
23 changed files with 138 additions and 126 deletions

View File

@ -20,6 +20,7 @@ import org.junit.jupiter.api.Test;
import org.springframework.aop.TargetSource; import org.springframework.aop.TargetSource;
import org.springframework.beans.MutablePropertyValues; import org.springframework.beans.MutablePropertyValues;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.tests.sample.beans.SerializablePerson; import org.springframework.tests.sample.beans.SerializablePerson;
@ -47,7 +48,7 @@ public class PrototypeBasedTargetSourceTests {
MutablePropertyValues pvs = new MutablePropertyValues(); MutablePropertyValues pvs = new MutablePropertyValues();
RootBeanDefinition bd = new RootBeanDefinition(SerializablePerson.class); RootBeanDefinition bd = new RootBeanDefinition(SerializablePerson.class);
bd.setPropertyValues(pvs); bd.setPropertyValues(pvs);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
bf.registerBeanDefinition("ts", tsBd); bf.registerBeanDefinition("ts", tsBd);

View File

@ -41,16 +41,18 @@ import org.springframework.lang.Nullable;
public interface BeanDefinition extends AttributeAccessor, BeanMetadataElement { public interface BeanDefinition extends AttributeAccessor, BeanMetadataElement {
/** /**
* Scope identifier for the standard singleton scope: "singleton". * Scope identifier for the standard singleton scope: {@value}.
* <p>Note that extended bean factories might support further scopes. * <p>Note that extended bean factories might support further scopes.
* @see #setScope * @see #setScope
* @see ConfigurableBeanFactory#SCOPE_SINGLETON
*/ */
String SCOPE_SINGLETON = ConfigurableBeanFactory.SCOPE_SINGLETON; String SCOPE_SINGLETON = ConfigurableBeanFactory.SCOPE_SINGLETON;
/** /**
* Scope identifier for the standard prototype scope: "prototype". * Scope identifier for the standard prototype scope: {@value}.
* <p>Note that extended bean factories might support further scopes. * <p>Note that extended bean factories might support further scopes.
* @see #setScope * @see #setScope
* @see ConfigurableBeanFactory#SCOPE_PROTOTYPE
*/ */
String SCOPE_PROTOTYPE = ConfigurableBeanFactory.SCOPE_PROTOTYPE; String SCOPE_PROTOTYPE = ConfigurableBeanFactory.SCOPE_PROTOTYPE;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2018 the original author or authors. * Copyright 2002-2019 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.
@ -51,15 +51,15 @@ import org.springframework.util.StringValueResolver;
public interface ConfigurableBeanFactory extends HierarchicalBeanFactory, SingletonBeanRegistry { public interface ConfigurableBeanFactory extends HierarchicalBeanFactory, SingletonBeanRegistry {
/** /**
* Scope identifier for the standard singleton scope: "singleton". * Scope identifier for the standard singleton scope: {@value}.
* Custom scopes can be added via {@code registerScope}. * <p>Custom scopes can be added via {@code registerScope}.
* @see #registerScope * @see #registerScope
*/ */
String SCOPE_SINGLETON = "singleton"; String SCOPE_SINGLETON = "singleton";
/** /**
* Scope identifier for the standard prototype scope: "prototype". * Scope identifier for the standard prototype scope: {@value}.
* Custom scopes can be added via {@code registerScope}. * <p>Custom scopes can be added via {@code registerScope}.
* @see #registerScope * @see #registerScope
*/ */
String SCOPE_PROTOTYPE = "prototype"; String SCOPE_PROTOTYPE = "prototype";

View File

@ -311,7 +311,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac
public void autowireBean(Object existingBean) { public void autowireBean(Object existingBean) {
// Use non-singleton bean definition, to avoid registering bean as dependent bean. // Use non-singleton bean definition, to avoid registering bean as dependent bean.
RootBeanDefinition bd = new RootBeanDefinition(ClassUtils.getUserClass(existingBean)); RootBeanDefinition bd = new RootBeanDefinition(ClassUtils.getUserClass(existingBean));
bd.setScope(BeanDefinition.SCOPE_PROTOTYPE); bd.setScope(SCOPE_PROTOTYPE);
bd.allowCaching = ClassUtils.isCacheSafe(bd.getBeanClass(), getBeanClassLoader()); bd.allowCaching = ClassUtils.isCacheSafe(bd.getBeanClass(), getBeanClassLoader());
BeanWrapper bw = new BeanWrapperImpl(existingBean); BeanWrapper bw = new BeanWrapperImpl(existingBean);
initBeanWrapper(bw); initBeanWrapper(bw);
@ -331,7 +331,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac
bd = new RootBeanDefinition(mbd); bd = new RootBeanDefinition(mbd);
} }
if (!bd.isPrototype()) { if (!bd.isPrototype()) {
bd.setScope(BeanDefinition.SCOPE_PROTOTYPE); bd.setScope(SCOPE_PROTOTYPE);
bd.allowCaching = ClassUtils.isCacheSafe(ClassUtils.getUserClass(existingBean), getBeanClassLoader()); bd.allowCaching = ClassUtils.isCacheSafe(ClassUtils.getUserClass(existingBean), getBeanClassLoader());
} }
BeanWrapper bw = new BeanWrapperImpl(existingBean); BeanWrapper bw = new BeanWrapperImpl(existingBean);
@ -349,7 +349,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac
public Object createBean(Class<?> beanClass, int autowireMode, boolean dependencyCheck) throws BeansException { public Object createBean(Class<?> beanClass, int autowireMode, boolean dependencyCheck) throws BeansException {
// Use non-singleton bean definition, to avoid registering bean as dependent bean. // Use non-singleton bean definition, to avoid registering bean as dependent bean.
RootBeanDefinition bd = new RootBeanDefinition(beanClass, autowireMode, dependencyCheck); RootBeanDefinition bd = new RootBeanDefinition(beanClass, autowireMode, dependencyCheck);
bd.setScope(BeanDefinition.SCOPE_PROTOTYPE); bd.setScope(SCOPE_PROTOTYPE);
return createBean(beanClass.getName(), bd, null); return createBean(beanClass.getName(), bd, null);
} }
@ -357,7 +357,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac
public Object autowire(Class<?> beanClass, int autowireMode, boolean dependencyCheck) throws BeansException { public Object autowire(Class<?> beanClass, int autowireMode, boolean dependencyCheck) throws BeansException {
// Use non-singleton bean definition, to avoid registering bean as dependent bean. // Use non-singleton bean definition, to avoid registering bean as dependent bean.
final RootBeanDefinition bd = new RootBeanDefinition(beanClass, autowireMode, dependencyCheck); final RootBeanDefinition bd = new RootBeanDefinition(beanClass, autowireMode, dependencyCheck);
bd.setScope(BeanDefinition.SCOPE_PROTOTYPE); bd.setScope(SCOPE_PROTOTYPE);
if (bd.getResolvedAutowireMode() == AUTOWIRE_CONSTRUCTOR) { if (bd.getResolvedAutowireMode() == AUTOWIRE_CONSTRUCTOR) {
return autowireConstructor(beanClass.getName(), bd, null, null).getWrappedInstance(); return autowireConstructor(beanClass.getName(), bd, null, null).getWrappedInstance();
} }
@ -387,7 +387,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac
// Use non-singleton bean definition, to avoid registering bean as dependent bean. // Use non-singleton bean definition, to avoid registering bean as dependent bean.
RootBeanDefinition bd = RootBeanDefinition bd =
new RootBeanDefinition(ClassUtils.getUserClass(existingBean), autowireMode, dependencyCheck); new RootBeanDefinition(ClassUtils.getUserClass(existingBean), autowireMode, dependencyCheck);
bd.setScope(BeanDefinition.SCOPE_PROTOTYPE); bd.setScope(SCOPE_PROTOTYPE);
BeanWrapper bw = new BeanWrapperImpl(existingBean); BeanWrapper bw = new BeanWrapperImpl(existingBean);
initBeanWrapper(bw); initBeanWrapper(bw);
populateBean(bd.getBeanClass().getName(), bd, bw); populateBean(bd.getBeanClass().getName(), bd, bw);

View File

@ -1357,7 +1357,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp
// Set default singleton scope, if not configured before. // Set default singleton scope, if not configured before.
if (!StringUtils.hasLength(mbd.getScope())) { if (!StringUtils.hasLength(mbd.getScope())) {
mbd.setScope(RootBeanDefinition.SCOPE_SINGLETON); mbd.setScope(SCOPE_SINGLETON);
} }
// A bean contained in a non-singleton bean cannot be a singleton itself. // A bean contained in a non-singleton bean cannot be a singleton itself.

View File

@ -30,6 +30,7 @@ import org.springframework.beans.MutablePropertyValues;
import org.springframework.beans.PropertyAccessor; import org.springframework.beans.PropertyAccessor;
import org.springframework.beans.factory.BeanDefinitionStoreException; import org.springframework.beans.factory.BeanDefinitionStoreException;
import org.springframework.beans.factory.CannotLoadBeanClassException; import org.springframework.beans.factory.CannotLoadBeanClassException;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.ConstructorArgumentValues; import org.springframework.beans.factory.config.ConstructorArgumentValues;
import org.springframework.beans.factory.config.RuntimeBeanReference; import org.springframework.beans.factory.config.RuntimeBeanReference;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
@ -414,7 +415,7 @@ public class PropertiesBeanDefinitionReader extends AbstractBeanDefinitionReader
String className = null; String className = null;
String parent = null; String parent = null;
String scope = GenericBeanDefinition.SCOPE_SINGLETON; String scope = BeanDefinition.SCOPE_SINGLETON;
boolean isAbstract = false; boolean isAbstract = false;
boolean lazyInit = false; boolean lazyInit = false;
@ -442,8 +443,8 @@ public class PropertiesBeanDefinitionReader extends AbstractBeanDefinitionReader
else if (SINGLETON_KEY.equals(property)) { else if (SINGLETON_KEY.equals(property)) {
// Spring 1.2 style // Spring 1.2 style
String val = StringUtils.trimWhitespace((String) entry.getValue()); String val = StringUtils.trimWhitespace((String) entry.getValue());
scope = ("".equals(val) || TRUE_VALUE.equals(val) ? GenericBeanDefinition.SCOPE_SINGLETON : scope = ("".equals(val) || TRUE_VALUE.equals(val) ? BeanDefinition.SCOPE_SINGLETON :
GenericBeanDefinition.SCOPE_PROTOTYPE); BeanDefinition.SCOPE_PROTOTYPE);
} }
else if (LAZY_INIT_KEY.equals(property)) { else if (LAZY_INIT_KEY.equals(property)) {
String val = StringUtils.trimWhitespace((String) entry.getValue()); String val = StringUtils.trimWhitespace((String) entry.getValue());

View File

@ -62,7 +62,6 @@ import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.BeanExpressionContext; import org.springframework.beans.factory.config.BeanExpressionContext;
import org.springframework.beans.factory.config.BeanExpressionResolver; import org.springframework.beans.factory.config.BeanExpressionResolver;
import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.beans.factory.config.ConstructorArgumentValues; import org.springframework.beans.factory.config.ConstructorArgumentValues;
import org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessorAdapter; import org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessorAdapter;
import org.springframework.beans.factory.config.PropertiesFactoryBean; import org.springframework.beans.factory.config.PropertiesFactoryBean;
@ -367,7 +366,7 @@ class DefaultListableBeanFactoryTests {
@Test @Test
void staticPrototypeFactoryMethodFoundByNonEagerTypeMatching() { void staticPrototypeFactoryMethodFoundByNonEagerTypeMatching() {
RootBeanDefinition rbd = new RootBeanDefinition(TestBeanFactory.class); RootBeanDefinition rbd = new RootBeanDefinition(TestBeanFactory.class);
rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
rbd.setFactoryMethodName("createTestBean"); rbd.setFactoryMethodName("createTestBean");
lbf.registerBeanDefinition("x1", rbd); lbf.registerBeanDefinition("x1", rbd);
@ -423,7 +422,7 @@ class DefaultListableBeanFactoryTests {
RootBeanDefinition rbd = new RootBeanDefinition(); RootBeanDefinition rbd = new RootBeanDefinition();
rbd.setFactoryBeanName("factory"); rbd.setFactoryBeanName("factory");
rbd.setFactoryMethodName("createTestBeanNonStatic"); rbd.setFactoryMethodName("createTestBeanNonStatic");
rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
lbf.registerBeanDefinition("x1", rbd); lbf.registerBeanDefinition("x1", rbd);
TestBeanFactory.initialized = false; TestBeanFactory.initialized = false;
@ -1181,11 +1180,11 @@ class DefaultListableBeanFactoryTests {
@Test @Test
void reregisterBeanDefinition() { void reregisterBeanDefinition() {
RootBeanDefinition bd1 = new RootBeanDefinition(TestBean.class); RootBeanDefinition bd1 = new RootBeanDefinition(TestBean.class);
bd1.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd1.setScope(BeanDefinition.SCOPE_PROTOTYPE);
lbf.registerBeanDefinition("testBean", bd1); lbf.registerBeanDefinition("testBean", bd1);
assertThat(lbf.getBean("testBean")).isInstanceOf(TestBean.class); assertThat(lbf.getBean("testBean")).isInstanceOf(TestBean.class);
RootBeanDefinition bd2 = new RootBeanDefinition(NestedTestBean.class); RootBeanDefinition bd2 = new RootBeanDefinition(NestedTestBean.class);
bd2.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd2.setScope(BeanDefinition.SCOPE_PROTOTYPE);
lbf.registerBeanDefinition("testBean", bd2); lbf.registerBeanDefinition("testBean", bd2);
assertThat(lbf.getBean("testBean")).isInstanceOf(NestedTestBean.class); assertThat(lbf.getBean("testBean")).isInstanceOf(NestedTestBean.class);
} }
@ -1642,7 +1641,7 @@ class DefaultListableBeanFactoryTests {
void getBeanByTypeInstanceWithAmbiguity() { void getBeanByTypeInstanceWithAmbiguity() {
RootBeanDefinition bd1 = createConstructorDependencyBeanDefinition(99); RootBeanDefinition bd1 = createConstructorDependencyBeanDefinition(99);
RootBeanDefinition bd2 = new RootBeanDefinition(ConstructorDependency.class); RootBeanDefinition bd2 = new RootBeanDefinition(ConstructorDependency.class);
bd2.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd2.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bd2.getConstructorArgumentValues().addGenericArgumentValue("43"); bd2.getConstructorArgumentValues().addGenericArgumentValue("43");
lbf.registerBeanDefinition("bd1", bd1); lbf.registerBeanDefinition("bd1", bd1);
lbf.registerBeanDefinition("bd2", bd2); lbf.registerBeanDefinition("bd2", bd2);
@ -1777,10 +1776,10 @@ class DefaultListableBeanFactoryTests {
@Test @Test
void getBeanWithArgsNotCreatedForFactoryBeanChecking() { void getBeanWithArgsNotCreatedForFactoryBeanChecking() {
RootBeanDefinition bd1 = new RootBeanDefinition(ConstructorDependency.class); RootBeanDefinition bd1 = new RootBeanDefinition(ConstructorDependency.class);
bd1.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd1.setScope(BeanDefinition.SCOPE_PROTOTYPE);
lbf.registerBeanDefinition("bd1", bd1); lbf.registerBeanDefinition("bd1", bd1);
RootBeanDefinition bd2 = new RootBeanDefinition(ConstructorDependencyFactoryBean.class); RootBeanDefinition bd2 = new RootBeanDefinition(ConstructorDependencyFactoryBean.class);
bd2.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd2.setScope(BeanDefinition.SCOPE_PROTOTYPE);
lbf.registerBeanDefinition("bd2", bd2); lbf.registerBeanDefinition("bd2", bd2);
ConstructorDependency bean = lbf.getBean(ConstructorDependency.class, 42); ConstructorDependency bean = lbf.getBean(ConstructorDependency.class, 42);
@ -1797,7 +1796,7 @@ class DefaultListableBeanFactoryTests {
private RootBeanDefinition createConstructorDependencyBeanDefinition(int age) { private RootBeanDefinition createConstructorDependencyBeanDefinition(int age) {
RootBeanDefinition bd = new RootBeanDefinition(ConstructorDependency.class); RootBeanDefinition bd = new RootBeanDefinition(ConstructorDependency.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bd.getConstructorArgumentValues().addGenericArgumentValue(age); bd.getConstructorArgumentValues().addGenericArgumentValue(age);
return bd; return bd;
} }
@ -2283,7 +2282,7 @@ class DefaultListableBeanFactoryTests {
@Test @Test
void prototypeStringCreatedRepeatedly() { void prototypeStringCreatedRepeatedly() {
RootBeanDefinition stringDef = new RootBeanDefinition(String.class); RootBeanDefinition stringDef = new RootBeanDefinition(String.class);
stringDef.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); stringDef.setScope(BeanDefinition.SCOPE_PROTOTYPE);
stringDef.getConstructorArgumentValues().addGenericArgumentValue(new TypedStringValue("value")); stringDef.getConstructorArgumentValues().addGenericArgumentValue(new TypedStringValue("value"));
lbf.registerBeanDefinition("string", stringDef); lbf.registerBeanDefinition("string", stringDef);
String val1 = lbf.getBean("string", String.class); String val1 = lbf.getBean("string", String.class);
@ -2299,7 +2298,7 @@ class DefaultListableBeanFactoryTests {
list.add("myName"); list.add("myName");
list.add("myBeanName"); list.add("myBeanName");
RootBeanDefinition bd = new RootBeanDefinition(DerivedTestBean.class); RootBeanDefinition bd = new RootBeanDefinition(DerivedTestBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bd.getConstructorArgumentValues().addGenericArgumentValue(list); bd.getConstructorArgumentValues().addGenericArgumentValue(list);
lbf.registerBeanDefinition("test", bd); lbf.registerBeanDefinition("test", bd);
DerivedTestBean tb = (DerivedTestBean) lbf.getBean("test"); DerivedTestBean tb = (DerivedTestBean) lbf.getBean("test");
@ -2317,7 +2316,7 @@ class DefaultListableBeanFactoryTests {
list.add("myName"); list.add("myName");
list.add("myBeanName"); list.add("myBeanName");
RootBeanDefinition bd = new RootBeanDefinition(DerivedTestBean.class); RootBeanDefinition bd = new RootBeanDefinition(DerivedTestBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bd.setFactoryMethodName("create"); bd.setFactoryMethodName("create");
bd.getConstructorArgumentValues().addGenericArgumentValue(list); bd.getConstructorArgumentValues().addGenericArgumentValue(list);
lbf.registerBeanDefinition("test", bd); lbf.registerBeanDefinition("test", bd);
@ -2335,7 +2334,7 @@ class DefaultListableBeanFactoryTests {
void prototypeCreationIsFastEnough() { void prototypeCreationIsFastEnough() {
Assume.notLogging(factoryLog); Assume.notLogging(factoryLog);
RootBeanDefinition rbd = new RootBeanDefinition(TestBean.class); RootBeanDefinition rbd = new RootBeanDefinition(TestBean.class);
rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
lbf.registerBeanDefinition("test", rbd); lbf.registerBeanDefinition("test", rbd);
lbf.freezeConfiguration(); lbf.freezeConfiguration();
StopWatch sw = new StopWatch(); StopWatch sw = new StopWatch();
@ -2353,7 +2352,7 @@ class DefaultListableBeanFactoryTests {
void prototypeCreationWithDependencyCheckIsFastEnough() { void prototypeCreationWithDependencyCheckIsFastEnough() {
Assume.notLogging(factoryLog); Assume.notLogging(factoryLog);
RootBeanDefinition rbd = new RootBeanDefinition(LifecycleBean.class); RootBeanDefinition rbd = new RootBeanDefinition(LifecycleBean.class);
rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
rbd.setDependencyCheck(RootBeanDefinition.DEPENDENCY_CHECK_OBJECTS); rbd.setDependencyCheck(RootBeanDefinition.DEPENDENCY_CHECK_OBJECTS);
lbf.registerBeanDefinition("test", rbd); lbf.registerBeanDefinition("test", rbd);
lbf.addBeanPostProcessor(new LifecycleBean.PostProcessor()); lbf.addBeanPostProcessor(new LifecycleBean.PostProcessor());
@ -2373,7 +2372,7 @@ class DefaultListableBeanFactoryTests {
void prototypeCreationWithConstructorArgumentsIsFastEnough() { void prototypeCreationWithConstructorArgumentsIsFastEnough() {
Assume.notLogging(factoryLog); Assume.notLogging(factoryLog);
RootBeanDefinition rbd = new RootBeanDefinition(TestBean.class); RootBeanDefinition rbd = new RootBeanDefinition(TestBean.class);
rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
rbd.getConstructorArgumentValues().addGenericArgumentValue("juergen"); rbd.getConstructorArgumentValues().addGenericArgumentValue("juergen");
rbd.getConstructorArgumentValues().addGenericArgumentValue("99"); rbd.getConstructorArgumentValues().addGenericArgumentValue("99");
lbf.registerBeanDefinition("test", rbd); lbf.registerBeanDefinition("test", rbd);
@ -2394,7 +2393,7 @@ class DefaultListableBeanFactoryTests {
void prototypeCreationWithResolvedConstructorArgumentsIsFastEnough() { void prototypeCreationWithResolvedConstructorArgumentsIsFastEnough() {
Assume.notLogging(factoryLog); Assume.notLogging(factoryLog);
RootBeanDefinition rbd = new RootBeanDefinition(TestBean.class); RootBeanDefinition rbd = new RootBeanDefinition(TestBean.class);
rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
rbd.getConstructorArgumentValues().addGenericArgumentValue(new RuntimeBeanReference("spouse")); rbd.getConstructorArgumentValues().addGenericArgumentValue(new RuntimeBeanReference("spouse"));
lbf.registerBeanDefinition("test", rbd); lbf.registerBeanDefinition("test", rbd);
lbf.registerBeanDefinition("spouse", new RootBeanDefinition(TestBean.class)); lbf.registerBeanDefinition("spouse", new RootBeanDefinition(TestBean.class));
@ -2416,7 +2415,7 @@ class DefaultListableBeanFactoryTests {
void prototypeCreationWithPropertiesIsFastEnough() { void prototypeCreationWithPropertiesIsFastEnough() {
Assume.notLogging(factoryLog); Assume.notLogging(factoryLog);
RootBeanDefinition rbd = new RootBeanDefinition(TestBean.class); RootBeanDefinition rbd = new RootBeanDefinition(TestBean.class);
rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
rbd.getPropertyValues().add("name", "juergen"); rbd.getPropertyValues().add("name", "juergen");
rbd.getPropertyValues().add("age", "99"); rbd.getPropertyValues().add("age", "99");
lbf.registerBeanDefinition("test", rbd); lbf.registerBeanDefinition("test", rbd);
@ -2438,7 +2437,7 @@ class DefaultListableBeanFactoryTests {
void prototypeCreationWithResolvedPropertiesIsFastEnough() { void prototypeCreationWithResolvedPropertiesIsFastEnough() {
Assume.notLogging(factoryLog); Assume.notLogging(factoryLog);
RootBeanDefinition rbd = new RootBeanDefinition(TestBean.class); RootBeanDefinition rbd = new RootBeanDefinition(TestBean.class);
rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
rbd.getPropertyValues().add("spouse", new RuntimeBeanReference("spouse")); rbd.getPropertyValues().add("spouse", new RuntimeBeanReference("spouse"));
lbf.registerBeanDefinition("test", rbd); lbf.registerBeanDefinition("test", rbd);
lbf.registerBeanDefinition("spouse", new RootBeanDefinition(TestBean.class)); lbf.registerBeanDefinition("spouse", new RootBeanDefinition(TestBean.class));
@ -2555,7 +2554,7 @@ class DefaultListableBeanFactoryTests {
@Test @Test
void destroyMethodOnInnerBeanAsPrototype() { void destroyMethodOnInnerBeanAsPrototype() {
RootBeanDefinition innerBd = new RootBeanDefinition(BeanWithDestroyMethod.class); RootBeanDefinition innerBd = new RootBeanDefinition(BeanWithDestroyMethod.class);
innerBd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); innerBd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
innerBd.setDestroyMethodName("close"); innerBd.setDestroyMethodName("close");
RootBeanDefinition bd = new RootBeanDefinition(BeanWithDestroyMethod.class); RootBeanDefinition bd = new RootBeanDefinition(BeanWithDestroyMethod.class);
bd.setDestroyMethodName("close"); bd.setDestroyMethodName("close");
@ -2599,7 +2598,7 @@ class DefaultListableBeanFactoryTests {
factoryMethodDefinitionWithProperties.setFactoryBeanName("factoryBeanInstance"); factoryMethodDefinitionWithProperties.setFactoryBeanName("factoryBeanInstance");
factoryMethodDefinitionWithProperties.setFactoryMethodName("create"); factoryMethodDefinitionWithProperties.setFactoryMethodName("create");
if (!singleton) { if (!singleton) {
factoryMethodDefinitionWithProperties.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); factoryMethodDefinitionWithProperties.setScope(BeanDefinition.SCOPE_PROTOTYPE);
} }
lbf.registerBeanDefinition("fmWithProperties", factoryMethodDefinitionWithProperties); lbf.registerBeanDefinition("fmWithProperties", factoryMethodDefinitionWithProperties);
@ -2607,7 +2606,7 @@ class DefaultListableBeanFactoryTests {
factoryMethodDefinitionGeneric.setFactoryBeanName("factoryBeanInstance"); factoryMethodDefinitionGeneric.setFactoryBeanName("factoryBeanInstance");
factoryMethodDefinitionGeneric.setFactoryMethodName("createGeneric"); factoryMethodDefinitionGeneric.setFactoryMethodName("createGeneric");
if (!singleton) { if (!singleton) {
factoryMethodDefinitionGeneric.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); factoryMethodDefinitionGeneric.setScope(BeanDefinition.SCOPE_PROTOTYPE);
} }
lbf.registerBeanDefinition("fmGeneric", factoryMethodDefinitionGeneric); lbf.registerBeanDefinition("fmGeneric", factoryMethodDefinitionGeneric);
@ -2618,7 +2617,7 @@ class DefaultListableBeanFactoryTests {
cvals.addGenericArgumentValue(expectedNameFromArgs); cvals.addGenericArgumentValue(expectedNameFromArgs);
factoryMethodDefinitionWithArgs.setConstructorArgumentValues(cvals); factoryMethodDefinitionWithArgs.setConstructorArgumentValues(cvals);
if (!singleton) { if (!singleton) {
factoryMethodDefinitionWithArgs.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); factoryMethodDefinitionWithArgs.setScope(BeanDefinition.SCOPE_PROTOTYPE);
} }
lbf.registerBeanDefinition("fmWithArgs", factoryMethodDefinitionWithArgs); lbf.registerBeanDefinition("fmWithArgs", factoryMethodDefinitionWithArgs);
@ -2676,7 +2675,7 @@ class DefaultListableBeanFactoryTests {
String theChildScope = "bonanza!"; String theChildScope = "bonanza!";
RootBeanDefinition parent = new RootBeanDefinition(); RootBeanDefinition parent = new RootBeanDefinition();
parent.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); parent.setScope(BeanDefinition.SCOPE_PROTOTYPE);
AbstractBeanDefinition child = BeanDefinitionBuilder.childBeanDefinition("parent").getBeanDefinition(); AbstractBeanDefinition child = BeanDefinitionBuilder.childBeanDefinition("parent").getBeanDefinition();
child.setBeanClass(TestBean.class); child.setBeanClass(TestBean.class);
@ -2757,7 +2756,7 @@ class DefaultListableBeanFactoryTests {
@SuppressWarnings({ "unchecked", "rawtypes" }) @SuppressWarnings({ "unchecked", "rawtypes" })
void initSecurityAwarePrototypeBean() { void initSecurityAwarePrototypeBean() {
RootBeanDefinition bd = new RootBeanDefinition(TestSecuredBean.class); RootBeanDefinition bd = new RootBeanDefinition(TestSecuredBean.class);
bd.setScope(ConfigurableBeanFactory.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bd.setInitMethodName("init"); bd.setInitMethodName("init");
lbf.registerBeanDefinition("test", bd); lbf.registerBeanDefinition("test", bd);
final Subject subject = new Subject(); final Subject subject = new Subject();

View File

@ -120,7 +120,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testResourceInjection() { public void testResourceInjection() {
RootBeanDefinition bd = new RootBeanDefinition(ResourceInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(ResourceInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
TestBean tb = new TestBean(); TestBean tb = new TestBean();
bf.registerSingleton("testBean", tb); bf.registerSingleton("testBean", tb);
@ -137,7 +137,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testExtendedResourceInjection() { public void testExtendedResourceInjection() {
RootBeanDefinition bd = new RootBeanDefinition(TypedExtendedResourceInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(TypedExtendedResourceInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
TestBean tb = new TestBean(); TestBean tb = new TestBean();
bf.registerSingleton("testBean", tb); bf.registerSingleton("testBean", tb);
@ -255,7 +255,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
public void testExtendedResourceInjectionWithAtRequired() { public void testExtendedResourceInjectionWithAtRequired() {
bf.addBeanPostProcessor(new RequiredAnnotationBeanPostProcessor()); bf.addBeanPostProcessor(new RequiredAnnotationBeanPostProcessor());
RootBeanDefinition bd = new RootBeanDefinition(TypedExtendedResourceInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(TypedExtendedResourceInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
TestBean tb = new TestBean(); TestBean tb = new TestBean();
bf.registerSingleton("testBean", tb); bf.registerSingleton("testBean", tb);
@ -300,7 +300,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testOptionalCollectionResourceInjection() { public void testOptionalCollectionResourceInjection() {
RootBeanDefinition rbd = new RootBeanDefinition(OptionalCollectionResourceInjectionBean.class); RootBeanDefinition rbd = new RootBeanDefinition(OptionalCollectionResourceInjectionBean.class);
rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", rbd); bf.registerBeanDefinition("annotatedBean", rbd);
TestBean tb = new TestBean(); TestBean tb = new TestBean();
bf.registerSingleton("testBean", tb); bf.registerSingleton("testBean", tb);
@ -333,7 +333,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testOptionalCollectionResourceInjectionWithSingleElement() { public void testOptionalCollectionResourceInjectionWithSingleElement() {
RootBeanDefinition rbd = new RootBeanDefinition(OptionalCollectionResourceInjectionBean.class); RootBeanDefinition rbd = new RootBeanDefinition(OptionalCollectionResourceInjectionBean.class);
rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", rbd); bf.registerBeanDefinition("annotatedBean", rbd);
TestBean tb = new TestBean(); TestBean tb = new TestBean();
bf.registerSingleton("testBean", tb); bf.registerSingleton("testBean", tb);
@ -441,7 +441,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testOrderedCollectionResourceInjection() { public void testOrderedCollectionResourceInjection() {
RootBeanDefinition rbd = new RootBeanDefinition(OptionalCollectionResourceInjectionBean.class); RootBeanDefinition rbd = new RootBeanDefinition(OptionalCollectionResourceInjectionBean.class);
rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", rbd); bf.registerBeanDefinition("annotatedBean", rbd);
TestBean tb = new TestBean(); TestBean tb = new TestBean();
bf.registerSingleton("testBean", tb); bf.registerSingleton("testBean", tb);
@ -476,7 +476,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testAnnotationOrderedCollectionResourceInjection() { public void testAnnotationOrderedCollectionResourceInjection() {
RootBeanDefinition rbd = new RootBeanDefinition(OptionalCollectionResourceInjectionBean.class); RootBeanDefinition rbd = new RootBeanDefinition(OptionalCollectionResourceInjectionBean.class);
rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", rbd); bf.registerBeanDefinition("annotatedBean", rbd);
TestBean tb = new TestBean(); TestBean tb = new TestBean();
bf.registerSingleton("testBean", tb); bf.registerSingleton("testBean", tb);
@ -509,7 +509,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testConstructorResourceInjection() { public void testConstructorResourceInjection() {
RootBeanDefinition bd = new RootBeanDefinition(ConstructorResourceInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(ConstructorResourceInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
TestBean tb = new TestBean(); TestBean tb = new TestBean();
bf.registerSingleton("testBean", tb); bf.registerSingleton("testBean", tb);
@ -536,7 +536,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testConstructorResourceInjectionWithNullFromFactoryBean() { public void testConstructorResourceInjectionWithNullFromFactoryBean() {
RootBeanDefinition bd = new RootBeanDefinition(ConstructorResourceInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(ConstructorResourceInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
TestBean tb = new TestBean(); TestBean tb = new TestBean();
bf.registerSingleton("testBean", tb); bf.registerSingleton("testBean", tb);
@ -563,7 +563,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testConstructorResourceInjectionWithNullFromFactoryMethod() { public void testConstructorResourceInjectionWithNullFromFactoryMethod() {
RootBeanDefinition bd = new RootBeanDefinition(ConstructorResourceInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(ConstructorResourceInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
RootBeanDefinition tb = new RootBeanDefinition(NullFactoryMethods.class); RootBeanDefinition tb = new RootBeanDefinition(NullFactoryMethods.class);
tb.setFactoryMethodName("createTestBean"); tb.setFactoryMethodName("createTestBean");
@ -818,7 +818,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testConstructorInjectionWithMap() { public void testConstructorInjectionWithMap() {
RootBeanDefinition bd = new RootBeanDefinition(MapConstructorInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(MapConstructorInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
TestBean tb1 = new TestBean("tb1"); TestBean tb1 = new TestBean("tb1");
bf.registerSingleton("testBean1", tb1); bf.registerSingleton("testBean1", tb1);
@ -840,7 +840,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testFieldInjectionWithMap() { public void testFieldInjectionWithMap() {
RootBeanDefinition bd = new RootBeanDefinition(MapFieldInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(MapFieldInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
TestBean tb1 = new TestBean("tb1"); TestBean tb1 = new TestBean("tb1");
TestBean tb2 = new TestBean("tb2"); TestBean tb2 = new TestBean("tb2");
@ -865,7 +865,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testMethodInjectionWithMap() { public void testMethodInjectionWithMap() {
RootBeanDefinition bd = new RootBeanDefinition(MapMethodInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(MapMethodInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
TestBean tb = new TestBean(); TestBean tb = new TestBean();
bf.registerSingleton("testBean", tb); bf.registerSingleton("testBean", tb);
@ -921,7 +921,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testConstructorInjectionWithTypedMapAsBean() { public void testConstructorInjectionWithTypedMapAsBean() {
RootBeanDefinition bd = new RootBeanDefinition(MapConstructorInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(MapConstructorInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
MyTestBeanMap tbm = new MyTestBeanMap(); MyTestBeanMap tbm = new MyTestBeanMap();
tbm.put("testBean1", new TestBean("tb1")); tbm.put("testBean1", new TestBean("tb1"));
@ -938,7 +938,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testConstructorInjectionWithPlainMapAsBean() { public void testConstructorInjectionWithPlainMapAsBean() {
RootBeanDefinition bd = new RootBeanDefinition(MapConstructorInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(MapConstructorInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
RootBeanDefinition tbm = new RootBeanDefinition(CollectionFactoryMethods.class); RootBeanDefinition tbm = new RootBeanDefinition(CollectionFactoryMethods.class);
tbm.setUniqueFactoryMethodName("testBeanMap"); tbm.setUniqueFactoryMethodName("testBeanMap");
@ -954,7 +954,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testConstructorInjectionWithCustomMapAsBean() { public void testConstructorInjectionWithCustomMapAsBean() {
RootBeanDefinition bd = new RootBeanDefinition(CustomMapConstructorInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(CustomMapConstructorInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
RootBeanDefinition tbm = new RootBeanDefinition(CustomCollectionFactoryMethods.class); RootBeanDefinition tbm = new RootBeanDefinition(CustomCollectionFactoryMethods.class);
tbm.setUniqueFactoryMethodName("testBeanMap"); tbm.setUniqueFactoryMethodName("testBeanMap");
@ -971,7 +971,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testConstructorInjectionWithPlainHashMapAsBean() { public void testConstructorInjectionWithPlainHashMapAsBean() {
RootBeanDefinition bd = new RootBeanDefinition(QualifiedMapConstructorInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(QualifiedMapConstructorInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
bf.registerBeanDefinition("myTestBeanMap", new RootBeanDefinition(HashMap.class)); bf.registerBeanDefinition("myTestBeanMap", new RootBeanDefinition(HashMap.class));
@ -984,7 +984,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testConstructorInjectionWithTypedSetAsBean() { public void testConstructorInjectionWithTypedSetAsBean() {
RootBeanDefinition bd = new RootBeanDefinition(SetConstructorInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(SetConstructorInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
MyTestBeanSet tbs = new MyTestBeanSet(); MyTestBeanSet tbs = new MyTestBeanSet();
tbs.add(new TestBean("tb1")); tbs.add(new TestBean("tb1"));
@ -1001,7 +1001,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testConstructorInjectionWithPlainSetAsBean() { public void testConstructorInjectionWithPlainSetAsBean() {
RootBeanDefinition bd = new RootBeanDefinition(SetConstructorInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(SetConstructorInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
RootBeanDefinition tbs = new RootBeanDefinition(CollectionFactoryMethods.class); RootBeanDefinition tbs = new RootBeanDefinition(CollectionFactoryMethods.class);
tbs.setUniqueFactoryMethodName("testBeanSet"); tbs.setUniqueFactoryMethodName("testBeanSet");
@ -1017,7 +1017,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testConstructorInjectionWithCustomSetAsBean() { public void testConstructorInjectionWithCustomSetAsBean() {
RootBeanDefinition bd = new RootBeanDefinition(CustomSetConstructorInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(CustomSetConstructorInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
RootBeanDefinition tbs = new RootBeanDefinition(CustomCollectionFactoryMethods.class); RootBeanDefinition tbs = new RootBeanDefinition(CustomCollectionFactoryMethods.class);
tbs.setUniqueFactoryMethodName("testBeanSet"); tbs.setUniqueFactoryMethodName("testBeanSet");
@ -1143,7 +1143,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
public void testObjectProviderInjectionWithPrototype() { public void testObjectProviderInjectionWithPrototype() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectProviderInjectionBean.class)); bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectProviderInjectionBean.class));
RootBeanDefinition tbd = new RootBeanDefinition(TestBean.class); RootBeanDefinition tbd = new RootBeanDefinition(TestBean.class);
tbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); tbd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("testBean", tbd); bf.registerBeanDefinition("testBean", tbd);
ObjectProviderInjectionBean bean = (ObjectProviderInjectionBean) bf.getBean("annotatedBean"); ObjectProviderInjectionBean bean = (ObjectProviderInjectionBean) bf.getBean("annotatedBean");
@ -1515,7 +1515,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testGenericsBasedFieldInjection() { public void testGenericsBasedFieldInjection() {
RootBeanDefinition bd = new RootBeanDefinition(RepositoryFieldInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(RepositoryFieldInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
String sv = "X"; String sv = "X";
bf.registerSingleton("stringValue", sv); bf.registerSingleton("stringValue", sv);
@ -1560,7 +1560,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testGenericsBasedFieldInjectionWithSubstitutedVariables() { public void testGenericsBasedFieldInjectionWithSubstitutedVariables() {
RootBeanDefinition bd = new RootBeanDefinition(RepositoryFieldInjectionBeanWithSubstitutedVariables.class); RootBeanDefinition bd = new RootBeanDefinition(RepositoryFieldInjectionBeanWithSubstitutedVariables.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
String sv = "X"; String sv = "X";
bf.registerSingleton("stringValue", sv); bf.registerSingleton("stringValue", sv);
@ -1605,7 +1605,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testGenericsBasedFieldInjectionWithQualifiers() { public void testGenericsBasedFieldInjectionWithQualifiers() {
RootBeanDefinition bd = new RootBeanDefinition(RepositoryFieldInjectionBeanWithQualifiers.class); RootBeanDefinition bd = new RootBeanDefinition(RepositoryFieldInjectionBeanWithQualifiers.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
StringRepository sr = new StringRepository(); StringRepository sr = new StringRepository();
bf.registerSingleton("stringRepo", sr); bf.registerSingleton("stringRepo", sr);
@ -1632,7 +1632,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testGenericsBasedFieldInjectionWithMocks() { public void testGenericsBasedFieldInjectionWithMocks() {
RootBeanDefinition bd = new RootBeanDefinition(RepositoryFieldInjectionBeanWithQualifiers.class); RootBeanDefinition bd = new RootBeanDefinition(RepositoryFieldInjectionBeanWithQualifiers.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
RootBeanDefinition rbd = new RootBeanDefinition(MocksControl.class); RootBeanDefinition rbd = new RootBeanDefinition(MocksControl.class);
@ -1671,7 +1671,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testGenericsBasedFieldInjectionWithSimpleMatch() { public void testGenericsBasedFieldInjectionWithSimpleMatch() {
RootBeanDefinition bd = new RootBeanDefinition(RepositoryFieldInjectionBeanWithSimpleMatch.class); RootBeanDefinition bd = new RootBeanDefinition(RepositoryFieldInjectionBeanWithSimpleMatch.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
bf.registerSingleton("repo", new StringRepository()); bf.registerSingleton("repo", new StringRepository());
@ -1699,7 +1699,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testGenericsBasedFactoryBeanInjectionWithBeanDefinition() { public void testGenericsBasedFactoryBeanInjectionWithBeanDefinition() {
RootBeanDefinition bd = new RootBeanDefinition(RepositoryFactoryBeanInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(RepositoryFactoryBeanInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
bf.registerBeanDefinition("repoFactoryBean", new RootBeanDefinition(RepositoryFactoryBean.class)); bf.registerBeanDefinition("repoFactoryBean", new RootBeanDefinition(RepositoryFactoryBean.class));
@ -1711,7 +1711,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testGenericsBasedFactoryBeanInjectionWithSingletonBean() { public void testGenericsBasedFactoryBeanInjectionWithSingletonBean() {
RootBeanDefinition bd = new RootBeanDefinition(RepositoryFactoryBeanInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(RepositoryFactoryBeanInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
bf.registerSingleton("repoFactoryBean", new RepositoryFactoryBean<>()); bf.registerSingleton("repoFactoryBean", new RepositoryFactoryBean<>());
@ -1723,7 +1723,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testGenericsBasedFieldInjectionWithSimpleMatchAndMock() { public void testGenericsBasedFieldInjectionWithSimpleMatchAndMock() {
RootBeanDefinition bd = new RootBeanDefinition(RepositoryFieldInjectionBeanWithSimpleMatch.class); RootBeanDefinition bd = new RootBeanDefinition(RepositoryFieldInjectionBeanWithSimpleMatch.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
RootBeanDefinition rbd = new RootBeanDefinition(MocksControl.class); RootBeanDefinition rbd = new RootBeanDefinition(MocksControl.class);
@ -1755,7 +1755,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testGenericsBasedFieldInjectionWithSimpleMatchAndMockito() { public void testGenericsBasedFieldInjectionWithSimpleMatchAndMockito() {
RootBeanDefinition bd = new RootBeanDefinition(RepositoryFieldInjectionBeanWithSimpleMatch.class); RootBeanDefinition bd = new RootBeanDefinition(RepositoryFieldInjectionBeanWithSimpleMatch.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
RootBeanDefinition rbd = new RootBeanDefinition(); RootBeanDefinition rbd = new RootBeanDefinition();
@ -1786,7 +1786,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testGenericsBasedMethodInjection() { public void testGenericsBasedMethodInjection() {
RootBeanDefinition bd = new RootBeanDefinition(RepositoryMethodInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(RepositoryMethodInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
String sv = "X"; String sv = "X";
bf.registerSingleton("stringValue", sv); bf.registerSingleton("stringValue", sv);
@ -1831,7 +1831,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testGenericsBasedMethodInjectionWithSubstitutedVariables() { public void testGenericsBasedMethodInjectionWithSubstitutedVariables() {
RootBeanDefinition bd = new RootBeanDefinition(RepositoryMethodInjectionBeanWithSubstitutedVariables.class); RootBeanDefinition bd = new RootBeanDefinition(RepositoryMethodInjectionBeanWithSubstitutedVariables.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
String sv = "X"; String sv = "X";
bf.registerSingleton("stringValue", sv); bf.registerSingleton("stringValue", sv);
@ -1876,7 +1876,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testGenericsBasedConstructorInjection() { public void testGenericsBasedConstructorInjection() {
RootBeanDefinition bd = new RootBeanDefinition(RepositoryConstructorInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(RepositoryConstructorInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
StringRepository sr = new StringRepository(); StringRepository sr = new StringRepository();
bf.registerSingleton("stringRepo", sr); bf.registerSingleton("stringRepo", sr);
@ -1904,7 +1904,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@SuppressWarnings("rawtypes") @SuppressWarnings("rawtypes")
public void testGenericsBasedConstructorInjectionWithNonTypedTarget() { public void testGenericsBasedConstructorInjectionWithNonTypedTarget() {
RootBeanDefinition bd = new RootBeanDefinition(RepositoryConstructorInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(RepositoryConstructorInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
GenericRepository gr = new GenericRepository(); GenericRepository gr = new GenericRepository();
bf.registerSingleton("genericRepo", gr); bf.registerSingleton("genericRepo", gr);
@ -1929,7 +1929,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testGenericsBasedConstructorInjectionWithNonGenericTarget() { public void testGenericsBasedConstructorInjectionWithNonGenericTarget() {
RootBeanDefinition bd = new RootBeanDefinition(RepositoryConstructorInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(RepositoryConstructorInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
SimpleRepository ngr = new SimpleRepository(); SimpleRepository ngr = new SimpleRepository();
bf.registerSingleton("simpleRepo", ngr); bf.registerSingleton("simpleRepo", ngr);
@ -1955,7 +1955,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@SuppressWarnings("rawtypes") @SuppressWarnings("rawtypes")
public void testGenericsBasedConstructorInjectionWithMixedTargets() { public void testGenericsBasedConstructorInjectionWithMixedTargets() {
RootBeanDefinition bd = new RootBeanDefinition(RepositoryConstructorInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(RepositoryConstructorInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
StringRepository sr = new StringRepository(); StringRepository sr = new StringRepository();
bf.registerSingleton("stringRepo", sr); bf.registerSingleton("stringRepo", sr);
@ -1982,7 +1982,7 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@Test @Test
public void testGenericsBasedConstructorInjectionWithMixedTargetsIncludingNonGeneric() { public void testGenericsBasedConstructorInjectionWithMixedTargetsIncludingNonGeneric() {
RootBeanDefinition bd = new RootBeanDefinition(RepositoryConstructorInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(RepositoryConstructorInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
StringRepository sr = new StringRepository(); StringRepository sr = new StringRepository();
bf.registerSingleton("stringRepo", sr); bf.registerSingleton("stringRepo", sr);

View File

@ -94,7 +94,7 @@ public class InjectAnnotationBeanPostProcessorTests {
@Test @Test
public void testResourceInjection() { public void testResourceInjection() {
RootBeanDefinition bd = new RootBeanDefinition(ResourceInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(ResourceInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
TestBean tb = new TestBean(); TestBean tb = new TestBean();
bf.registerSingleton("testBean", tb); bf.registerSingleton("testBean", tb);
@ -111,7 +111,7 @@ public class InjectAnnotationBeanPostProcessorTests {
@Test @Test
public void testExtendedResourceInjection() { public void testExtendedResourceInjection() {
RootBeanDefinition bd = new RootBeanDefinition(TypedExtendedResourceInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(TypedExtendedResourceInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
TestBean tb = new TestBean(); TestBean tb = new TestBean();
bf.registerSingleton("testBean", tb); bf.registerSingleton("testBean", tb);
@ -160,7 +160,7 @@ public class InjectAnnotationBeanPostProcessorTests {
public void testExtendedResourceInjectionWithAtRequired() { public void testExtendedResourceInjectionWithAtRequired() {
bf.addBeanPostProcessor(new RequiredAnnotationBeanPostProcessor()); bf.addBeanPostProcessor(new RequiredAnnotationBeanPostProcessor());
RootBeanDefinition bd = new RootBeanDefinition(TypedExtendedResourceInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(TypedExtendedResourceInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
TestBean tb = new TestBean(); TestBean tb = new TestBean();
bf.registerSingleton("testBean", tb); bf.registerSingleton("testBean", tb);
@ -179,7 +179,7 @@ public class InjectAnnotationBeanPostProcessorTests {
@Test @Test
public void testConstructorResourceInjection() { public void testConstructorResourceInjection() {
RootBeanDefinition bd = new RootBeanDefinition(ConstructorResourceInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(ConstructorResourceInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
TestBean tb = new TestBean(); TestBean tb = new TestBean();
bf.registerSingleton("testBean", tb); bf.registerSingleton("testBean", tb);
@ -236,7 +236,7 @@ public class InjectAnnotationBeanPostProcessorTests {
@Test @Test
public void testConstructorInjectionWithMap() { public void testConstructorInjectionWithMap() {
RootBeanDefinition bd = new RootBeanDefinition(MapConstructorInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(MapConstructorInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
TestBean tb1 = new TestBean(); TestBean tb1 = new TestBean();
TestBean tb2 = new TestBean(); TestBean tb2 = new TestBean();
@ -261,7 +261,7 @@ public class InjectAnnotationBeanPostProcessorTests {
@Test @Test
public void testFieldInjectionWithMap() { public void testFieldInjectionWithMap() {
RootBeanDefinition bd = new RootBeanDefinition(MapFieldInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(MapFieldInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
TestBean tb1 = new TestBean(); TestBean tb1 = new TestBean();
TestBean tb2 = new TestBean(); TestBean tb2 = new TestBean();
@ -286,7 +286,7 @@ public class InjectAnnotationBeanPostProcessorTests {
@Test @Test
public void testMethodInjectionWithMap() { public void testMethodInjectionWithMap() {
RootBeanDefinition bd = new RootBeanDefinition(MapMethodInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(MapMethodInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
TestBean tb = new TestBean(); TestBean tb = new TestBean();
bf.registerSingleton("testBean", tb); bf.registerSingleton("testBean", tb);

View File

@ -19,6 +19,7 @@ package org.springframework.beans.factory.annotation;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.tests.sample.beans.TestBean; import org.springframework.tests.sample.beans.TestBean;
@ -44,7 +45,7 @@ public class LookupAnnotationTests {
beanFactory.registerBeanDefinition("abstractBean", new RootBeanDefinition(AbstractBean.class)); beanFactory.registerBeanDefinition("abstractBean", new RootBeanDefinition(AbstractBean.class));
beanFactory.registerBeanDefinition("beanConsumer", new RootBeanDefinition(BeanConsumer.class)); beanFactory.registerBeanDefinition("beanConsumer", new RootBeanDefinition(BeanConsumer.class));
RootBeanDefinition tbd = new RootBeanDefinition(TestBean.class); RootBeanDefinition tbd = new RootBeanDefinition(TestBean.class);
tbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); tbd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
beanFactory.registerBeanDefinition("testBean", tbd); beanFactory.registerBeanDefinition("testBean", tbd);
} }

View File

@ -45,7 +45,7 @@ import org.springframework.beans.factory.BeanNameAware;
import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.SmartFactoryBean; import org.springframework.beans.factory.SmartFactoryBean;
import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.support.SecurityContextProvider; import org.springframework.beans.factory.support.SecurityContextProvider;
@ -442,7 +442,7 @@ public class CallbacksSecurityTests {
final DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); final DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
BeanDefinitionBuilder bdb = BeanDefinitionBuilder BeanDefinitionBuilder bdb = BeanDefinitionBuilder
.genericBeanDefinition(NonPrivilegedBean.class).setScope( .genericBeanDefinition(NonPrivilegedBean.class).setScope(
ConfigurableBeanFactory.SCOPE_PROTOTYPE) BeanDefinition.SCOPE_PROTOTYPE)
.setInitMethodName("init").setDestroyMethodName("destroy") .setInitMethodName("init").setDestroyMethodName("destroy")
.addConstructorArgValue("user1"); .addConstructorArgValue("user1");
lbf.registerBeanDefinition("test", bdb.getBeanDefinition()); lbf.registerBeanDefinition("test", bdb.getBeanDefinition());

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2017 the original author or authors. * Copyright 2002-2019 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.
@ -20,6 +20,7 @@ import java.util.Locale;
import org.springframework.beans.BeansException; import org.springframework.beans.BeansException;
import org.springframework.beans.MutablePropertyValues; import org.springframework.beans.MutablePropertyValues;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.GenericBeanDefinition; import org.springframework.beans.factory.support.GenericBeanDefinition;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.lang.Nullable; import org.springframework.lang.Nullable;
@ -115,7 +116,7 @@ public class StaticApplicationContext extends GenericApplicationContext {
*/ */
public void registerPrototype(String name, Class<?> clazz) throws BeansException { public void registerPrototype(String name, Class<?> clazz) throws BeansException {
GenericBeanDefinition bd = new GenericBeanDefinition(); GenericBeanDefinition bd = new GenericBeanDefinition();
bd.setScope(GenericBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bd.setBeanClass(clazz); bd.setBeanClass(clazz);
getDefaultListableBeanFactory().registerBeanDefinition(name, bd); getDefaultListableBeanFactory().registerBeanDefinition(name, bd);
} }
@ -127,7 +128,7 @@ public class StaticApplicationContext extends GenericApplicationContext {
*/ */
public void registerPrototype(String name, Class<?> clazz, MutablePropertyValues pvs) throws BeansException { public void registerPrototype(String name, Class<?> clazz, MutablePropertyValues pvs) throws BeansException {
GenericBeanDefinition bd = new GenericBeanDefinition(); GenericBeanDefinition bd = new GenericBeanDefinition();
bd.setScope(GenericBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bd.setBeanClass(clazz); bd.setBeanClass(clazz);
bd.setPropertyValues(pvs); bd.setPropertyValues(pvs);
getDefaultListableBeanFactory().registerBeanDefinition(name, bd); getDefaultListableBeanFactory().registerBeanDefinition(name, bd);

View File

@ -16,10 +16,10 @@
package example.scannable_scoped; package example.scannable_scoped;
import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@Component @Component
@MyScope(BeanDefinition.SCOPE_PROTOTYPE) @MyScope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class CustomScopeAnnotationBean { public class CustomScopeAnnotationBean {
} }

View File

@ -19,11 +19,11 @@ package example.scannable_scoped;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.ScopedProxyMode; import org.springframework.context.annotation.ScopedProxyMode;
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
public @interface MyScope { public @interface MyScope {
String value() default BeanDefinition.SCOPE_SINGLETON; String value() default ConfigurableBeanFactory.SCOPE_SINGLETON;
ScopedProxyMode proxyMode() default ScopedProxyMode.DEFAULT; ScopedProxyMode proxyMode() default ScopedProxyMode.DEFAULT;
} }

View File

@ -29,6 +29,7 @@ import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.RuntimeBeanReference; import org.springframework.beans.factory.config.RuntimeBeanReference;
import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.beans.factory.support.RootBeanDefinition;
@ -63,7 +64,7 @@ public class AnnotationProcessorPerformanceTests {
GenericApplicationContext ctx = createContext(); GenericApplicationContext ctx = createContext();
RootBeanDefinition rbd = new RootBeanDefinition(ResourceAnnotatedTestBean.class); RootBeanDefinition rbd = new RootBeanDefinition(ResourceAnnotatedTestBean.class);
rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
ctx.registerBeanDefinition("test", rbd); ctx.registerBeanDefinition("test", rbd);
ctx.registerBeanDefinition("spouse", new RootBeanDefinition(TestBean.class)); ctx.registerBeanDefinition("spouse", new RootBeanDefinition(TestBean.class));
@ -75,7 +76,7 @@ public class AnnotationProcessorPerformanceTests {
GenericApplicationContext ctx = createContext(); GenericApplicationContext ctx = createContext();
RootBeanDefinition rbd = new RootBeanDefinition(ResourceAnnotatedTestBean.class); RootBeanDefinition rbd = new RootBeanDefinition(ResourceAnnotatedTestBean.class);
rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
rbd.getPropertyValues().add("spouse", new RuntimeBeanReference("spouse")); rbd.getPropertyValues().add("spouse", new RuntimeBeanReference("spouse"));
ctx.registerBeanDefinition("test", rbd); ctx.registerBeanDefinition("test", rbd);
ctx.registerBeanDefinition("spouse", new RootBeanDefinition(TestBean.class)); ctx.registerBeanDefinition("spouse", new RootBeanDefinition(TestBean.class));
@ -88,7 +89,7 @@ public class AnnotationProcessorPerformanceTests {
GenericApplicationContext ctx = createContext(); GenericApplicationContext ctx = createContext();
RootBeanDefinition rbd = new RootBeanDefinition(AutowiredAnnotatedTestBean.class); RootBeanDefinition rbd = new RootBeanDefinition(AutowiredAnnotatedTestBean.class);
rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
ctx.registerBeanDefinition("test", rbd); ctx.registerBeanDefinition("test", rbd);
ctx.registerBeanDefinition("spouse", new RootBeanDefinition(TestBean.class)); ctx.registerBeanDefinition("spouse", new RootBeanDefinition(TestBean.class));
@ -100,7 +101,7 @@ public class AnnotationProcessorPerformanceTests {
GenericApplicationContext ctx = createContext(); GenericApplicationContext ctx = createContext();
RootBeanDefinition rbd = new RootBeanDefinition(AutowiredAnnotatedTestBean.class); RootBeanDefinition rbd = new RootBeanDefinition(AutowiredAnnotatedTestBean.class);
rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
rbd.getPropertyValues().add("spouse", new RuntimeBeanReference("spouse")); rbd.getPropertyValues().add("spouse", new RuntimeBeanReference("spouse"));
ctx.registerBeanDefinition("test", rbd); ctx.registerBeanDefinition("test", rbd);
ctx.registerBeanDefinition("spouse", new RootBeanDefinition(TestBean.class)); ctx.registerBeanDefinition("spouse", new RootBeanDefinition(TestBean.class));

View File

@ -176,7 +176,7 @@ public class ClassPathBeanDefinitionScannerTests {
public void testSimpleScanWithDefaultFiltersAndOverriddenCompatibleNamedBean() { public void testSimpleScanWithDefaultFiltersAndOverriddenCompatibleNamedBean() {
GenericApplicationContext context = new GenericApplicationContext(); GenericApplicationContext context = new GenericApplicationContext();
RootBeanDefinition bd = new RootBeanDefinition(NamedStubDao.class); RootBeanDefinition bd = new RootBeanDefinition(NamedStubDao.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
context.registerBeanDefinition("myNamedDao", bd); context.registerBeanDefinition("myNamedDao", bd);
int initialBeanCount = context.getBeanDefinitionCount(); int initialBeanCount = context.getBeanDefinitionCount();
ClassPathBeanDefinitionScanner scanner = new ClassPathBeanDefinitionScanner(context); ClassPathBeanDefinitionScanner scanner = new ClassPathBeanDefinitionScanner(context);

View File

@ -45,6 +45,7 @@ import org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostP
import org.springframework.beans.factory.annotation.Lookup; import org.springframework.beans.factory.annotation.Lookup;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver; import org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.BeanDefinitionHolder; import org.springframework.beans.factory.config.BeanDefinitionHolder;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.BeanDefinitionRegistry;
@ -482,7 +483,7 @@ public class ConfigurationClassPostProcessorTests {
bpp.setBeanFactory(beanFactory); bpp.setBeanFactory(beanFactory);
beanFactory.addBeanPostProcessor(bpp); beanFactory.addBeanPostProcessor(bpp);
RootBeanDefinition bd = new RootBeanDefinition(RepositoryInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(RepositoryInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
beanFactory.registerBeanDefinition("annotatedBean", bd); beanFactory.registerBeanDefinition("annotatedBean", bd);
beanFactory.registerBeanDefinition("configClass", new RootBeanDefinition(RepositoryConfiguration.class)); beanFactory.registerBeanDefinition("configClass", new RootBeanDefinition(RepositoryConfiguration.class));
ConfigurationClassPostProcessor pp = new ConfigurationClassPostProcessor(); ConfigurationClassPostProcessor pp = new ConfigurationClassPostProcessor();
@ -499,7 +500,7 @@ public class ConfigurationClassPostProcessorTests {
bpp.setBeanFactory(beanFactory); bpp.setBeanFactory(beanFactory);
beanFactory.addBeanPostProcessor(bpp); beanFactory.addBeanPostProcessor(bpp);
RootBeanDefinition bd = new RootBeanDefinition(RepositoryInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(RepositoryInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
beanFactory.registerBeanDefinition("annotatedBean", bd); beanFactory.registerBeanDefinition("annotatedBean", bd);
beanFactory.registerBeanDefinition("configClass", new RootBeanDefinition(ScopedRepositoryConfiguration.class)); beanFactory.registerBeanDefinition("configClass", new RootBeanDefinition(ScopedRepositoryConfiguration.class));
ConfigurationClassPostProcessor pp = new ConfigurationClassPostProcessor(); ConfigurationClassPostProcessor pp = new ConfigurationClassPostProcessor();
@ -516,7 +517,7 @@ public class ConfigurationClassPostProcessorTests {
bpp.setBeanFactory(beanFactory); bpp.setBeanFactory(beanFactory);
beanFactory.addBeanPostProcessor(bpp); beanFactory.addBeanPostProcessor(bpp);
RootBeanDefinition bd = new RootBeanDefinition(RepositoryInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(RepositoryInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
beanFactory.registerBeanDefinition("annotatedBean", bd); beanFactory.registerBeanDefinition("annotatedBean", bd);
beanFactory.registerBeanDefinition("configClass", new RootBeanDefinition(ScopedProxyRepositoryConfiguration.class)); beanFactory.registerBeanDefinition("configClass", new RootBeanDefinition(ScopedProxyRepositoryConfiguration.class));
ConfigurationClassPostProcessor pp = new ConfigurationClassPostProcessor(); ConfigurationClassPostProcessor pp = new ConfigurationClassPostProcessor();
@ -536,7 +537,7 @@ public class ConfigurationClassPostProcessorTests {
bpp.setBeanFactory(beanFactory); bpp.setBeanFactory(beanFactory);
beanFactory.addBeanPostProcessor(bpp); beanFactory.addBeanPostProcessor(bpp);
RootBeanDefinition bd = new RootBeanDefinition(RepositoryInjectionBean.class.getName()); RootBeanDefinition bd = new RootBeanDefinition(RepositoryInjectionBean.class.getName());
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
beanFactory.registerBeanDefinition("annotatedBean", bd); beanFactory.registerBeanDefinition("annotatedBean", bd);
beanFactory.registerBeanDefinition("configClass", new RootBeanDefinition(ScopedProxyRepositoryConfiguration.class.getName())); beanFactory.registerBeanDefinition("configClass", new RootBeanDefinition(ScopedProxyRepositoryConfiguration.class.getName()));
ConfigurationClassPostProcessor pp = new ConfigurationClassPostProcessor(); ConfigurationClassPostProcessor pp = new ConfigurationClassPostProcessor();
@ -556,7 +557,7 @@ public class ConfigurationClassPostProcessorTests {
bpp.setBeanFactory(beanFactory); bpp.setBeanFactory(beanFactory);
beanFactory.addBeanPostProcessor(bpp); beanFactory.addBeanPostProcessor(bpp);
RootBeanDefinition bd = new RootBeanDefinition(SpecificRepositoryInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(SpecificRepositoryInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
beanFactory.registerBeanDefinition("annotatedBean", bd); beanFactory.registerBeanDefinition("annotatedBean", bd);
beanFactory.registerBeanDefinition("configClass", new RootBeanDefinition(SpecificRepositoryConfiguration.class)); beanFactory.registerBeanDefinition("configClass", new RootBeanDefinition(SpecificRepositoryConfiguration.class));
ConfigurationClassPostProcessor pp = new ConfigurationClassPostProcessor(); ConfigurationClassPostProcessor pp = new ConfigurationClassPostProcessor();
@ -573,7 +574,7 @@ public class ConfigurationClassPostProcessorTests {
bpp.setBeanFactory(beanFactory); bpp.setBeanFactory(beanFactory);
beanFactory.addBeanPostProcessor(bpp); beanFactory.addBeanPostProcessor(bpp);
RootBeanDefinition bd = new RootBeanDefinition(RepositoryFactoryBeanInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(RepositoryFactoryBeanInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
beanFactory.registerBeanDefinition("annotatedBean", bd); beanFactory.registerBeanDefinition("annotatedBean", bd);
beanFactory.registerBeanDefinition("configClass", new RootBeanDefinition(RepositoryFactoryBeanConfiguration.class)); beanFactory.registerBeanDefinition("configClass", new RootBeanDefinition(RepositoryFactoryBeanConfiguration.class));
ConfigurationClassPostProcessor pp = new ConfigurationClassPostProcessor(); ConfigurationClassPostProcessor pp = new ConfigurationClassPostProcessor();

View File

@ -25,6 +25,7 @@ import org.junit.jupiter.api.Test;
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;
import org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor; import org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.tests.sample.beans.TestBean; import org.springframework.tests.sample.beans.TestBean;
@ -41,7 +42,7 @@ public class LazyAutowiredAnnotationBeanPostProcessorTests {
private void doTestLazyResourceInjection(Class<? extends TestBeanHolder> annotatedBeanClass) { private void doTestLazyResourceInjection(Class<? extends TestBeanHolder> annotatedBeanClass) {
AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(); AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext();
RootBeanDefinition abd = new RootBeanDefinition(annotatedBeanClass); RootBeanDefinition abd = new RootBeanDefinition(annotatedBeanClass);
abd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); abd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
ac.registerBeanDefinition("annotatedBean", abd); ac.registerBeanDefinition("annotatedBean", abd);
RootBeanDefinition tbd = new RootBeanDefinition(TestBean.class); RootBeanDefinition tbd = new RootBeanDefinition(TestBean.class);
tbd.setLazyInit(true); tbd.setLazyInit(true);
@ -64,7 +65,7 @@ public class LazyAutowiredAnnotationBeanPostProcessorTests {
AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(); AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext();
RootBeanDefinition abd = new RootBeanDefinition(FieldResourceInjectionBean.class); RootBeanDefinition abd = new RootBeanDefinition(FieldResourceInjectionBean.class);
abd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); abd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
ac.registerBeanDefinition("annotatedBean", abd); ac.registerBeanDefinition("annotatedBean", abd);
RootBeanDefinition tbd = new RootBeanDefinition(TestBean.class); RootBeanDefinition tbd = new RootBeanDefinition(TestBean.class);
tbd.setLazyInit(true); tbd.setLazyInit(true);
@ -124,7 +125,7 @@ public class LazyAutowiredAnnotationBeanPostProcessorTests {
bpp.setBeanFactory(bf); bpp.setBeanFactory(bf);
bf.addBeanPostProcessor(bpp); bf.addBeanPostProcessor(bpp);
RootBeanDefinition bd = new RootBeanDefinition(FieldResourceInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(FieldResourceInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
FieldResourceInjectionBean bean = (FieldResourceInjectionBean) bf.getBean("annotatedBean"); FieldResourceInjectionBean bean = (FieldResourceInjectionBean) bf.getBean("annotatedBean");
@ -141,7 +142,7 @@ public class LazyAutowiredAnnotationBeanPostProcessorTests {
bpp.setBeanFactory(bf); bpp.setBeanFactory(bf);
bf.addBeanPostProcessor(bpp); bf.addBeanPostProcessor(bpp);
RootBeanDefinition bd = new RootBeanDefinition(OptionalFieldResourceInjectionBean.class); RootBeanDefinition bd = new RootBeanDefinition(OptionalFieldResourceInjectionBean.class);
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd); bf.registerBeanDefinition("annotatedBean", bd);
OptionalFieldResourceInjectionBean bean = (OptionalFieldResourceInjectionBean) bf.getBean("annotatedBean"); OptionalFieldResourceInjectionBean bean = (OptionalFieldResourceInjectionBean) bf.getBean("annotatedBean");

View File

@ -26,17 +26,17 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope; import org.springframework.context.annotation.Scope;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROTOTYPE; import static org.springframework.beans.factory.config.ConfigurableBeanFactory.SCOPE_PROTOTYPE;
import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_SINGLETON; import static org.springframework.beans.factory.config.ConfigurableBeanFactory.SCOPE_SINGLETON;
/** /**
* @author Marcin Piela * @author Marcin Piela
* @author Juergen Hoeller * @author Juergen Hoeller
*/ */
public class Spr12526Tests { class Spr12526Tests {
@Test @Test
public void testInjection() { void testInjection() {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(TestContext.class); AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(TestContext.class);
CustomCondition condition = ctx.getBean(CustomCondition.class); CustomCondition condition = ctx.getBean(CustomCondition.class);
@ -47,33 +47,33 @@ public class Spr12526Tests {
condition.setCondition(false); condition.setCondition(false);
SecondService secondService = (SecondService) ctx.getBean(Service.class); SecondService secondService = (SecondService) ctx.getBean(Service.class);
assertThat(secondService.getDependency()).as("SecondService.dependency is null").isNotNull(); assertThat(secondService.getDependency()).as("SecondService.dependency is null").isNotNull();
ctx.close();
} }
@Configuration @Configuration
public static class TestContext { static class TestContext {
@Bean @Bean
@Scope(SCOPE_SINGLETON) @Scope(SCOPE_SINGLETON)
public CustomCondition condition() { CustomCondition condition() {
return new CustomCondition(); return new CustomCondition();
} }
@Bean @Bean
@Scope(SCOPE_PROTOTYPE) @Scope(SCOPE_PROTOTYPE)
public Service service(CustomCondition condition) { Service service(CustomCondition condition) {
return (condition.check() ? new FirstService() : new SecondService()); return (condition.check() ? new FirstService() : new SecondService());
} }
@Bean @Bean
public DependencyOne dependencyOne() { DependencyOne dependencyOne() {
return new DependencyOne(); return new DependencyOne();
} }
@Bean @Bean
public DependencyTwo dependencyTwo() { DependencyTwo dependencyTwo() {
return new DependencyTwo(); return new DependencyTwo();
} }
} }

View File

@ -27,6 +27,7 @@ import org.junit.jupiter.api.Test;
import org.springframework.aop.framework.ProxyFactory; import org.springframework.aop.framework.ProxyFactory;
import org.springframework.beans.BeansException; import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.beans.factory.config.RuntimeBeanReference; import org.springframework.beans.factory.config.RuntimeBeanReference;
import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.beans.factory.support.RootBeanDefinition;
@ -355,7 +356,7 @@ public class ApplicationContextEventTests extends AbstractApplicationEventListen
public void nonSingletonListenerInApplicationContext() { public void nonSingletonListenerInApplicationContext() {
StaticApplicationContext context = new StaticApplicationContext(); StaticApplicationContext context = new StaticApplicationContext();
RootBeanDefinition listener = new RootBeanDefinition(MyNonSingletonListener.class); RootBeanDefinition listener = new RootBeanDefinition(MyNonSingletonListener.class);
listener.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); listener.setScope(BeanDefinition.SCOPE_PROTOTYPE);
context.registerBeanDefinition("listener", listener); context.registerBeanDefinition("listener", listener);
context.refresh(); context.refresh();

View File

@ -36,6 +36,7 @@ import org.springframework.beans.factory.ObjectFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.Scope; import org.springframework.beans.factory.config.Scope;
import org.springframework.beans.factory.config.TypedStringValue; import org.springframework.beans.factory.config.TypedStringValue;
import org.springframework.beans.factory.support.AutowireCandidateQualifier; import org.springframework.beans.factory.support.AutowireCandidateQualifier;
@ -219,7 +220,7 @@ class ApplicationContextExpressionTests {
cs.addConverter(String.class, String.class, String::trim); cs.addConverter(String.class, String.class, String::trim);
ac.getBeanFactory().registerSingleton(GenericApplicationContext.CONVERSION_SERVICE_BEAN_NAME, cs); ac.getBeanFactory().registerSingleton(GenericApplicationContext.CONVERSION_SERVICE_BEAN_NAME, cs);
RootBeanDefinition rbd = new RootBeanDefinition(PrototypeTestBean.class); RootBeanDefinition rbd = new RootBeanDefinition(PrototypeTestBean.class);
rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
rbd.getPropertyValues().add("country", "#{systemProperties.country}"); rbd.getPropertyValues().add("country", "#{systemProperties.country}");
rbd.getPropertyValues().add("country2", new TypedStringValue("-#{systemProperties.country}-")); rbd.getPropertyValues().add("country2", new TypedStringValue("-#{systemProperties.country}-"));
ac.registerBeanDefinition("test", rbd); ac.registerBeanDefinition("test", rbd);
@ -252,7 +253,7 @@ class ApplicationContextExpressionTests {
Assume.notLogging(factoryLog); Assume.notLogging(factoryLog);
GenericApplicationContext ac = new GenericApplicationContext(); GenericApplicationContext ac = new GenericApplicationContext();
RootBeanDefinition rbd = new RootBeanDefinition(TestBean.class); RootBeanDefinition rbd = new RootBeanDefinition(TestBean.class);
rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
rbd.getConstructorArgumentValues().addGenericArgumentValue("#{systemProperties.name}"); rbd.getConstructorArgumentValues().addGenericArgumentValue("#{systemProperties.name}");
rbd.getPropertyValues().add("country", "#{systemProperties.country}"); rbd.getPropertyValues().add("country", "#{systemProperties.country}");
ac.registerBeanDefinition("test", rbd); ac.registerBeanDefinition("test", rbd);

View File

@ -19,6 +19,7 @@ package org.springframework.context.support;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.NoUniqueBeanDefinitionException; import org.springframework.beans.factory.NoUniqueBeanDefinitionException;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationContextAware;
@ -64,7 +65,7 @@ public class GenericApplicationContextTests {
public void withScopedSupplier() { public void withScopedSupplier() {
GenericApplicationContext ac = new GenericApplicationContext(); GenericApplicationContext ac = new GenericApplicationContext();
ac.registerBeanDefinition("testBean", ac.registerBeanDefinition("testBean",
new RootBeanDefinition(String.class, RootBeanDefinition.SCOPE_PROTOTYPE, ac::toString)); new RootBeanDefinition(String.class, BeanDefinition.SCOPE_PROTOTYPE, ac::toString));
ac.refresh(); ac.refresh();
assertThat(ac.getBean("testBean")).isNotSameAs(ac.getBean("testBean")); assertThat(ac.getBean("testBean")).isNotSameAs(ac.getBean("testBean"));

View File

@ -36,6 +36,7 @@ import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreato
import org.springframework.aop.support.DefaultIntroductionAdvisor; import org.springframework.aop.support.DefaultIntroductionAdvisor;
import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.context.ApplicationEvent; import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener; import org.springframework.context.ApplicationListener;
@ -383,7 +384,7 @@ public class AsyncExecutionTests {
listenerConstructed = 0; listenerConstructed = 0;
GenericApplicationContext context = new GenericApplicationContext(); GenericApplicationContext context = new GenericApplicationContext();
RootBeanDefinition listenerDef = new RootBeanDefinition(AsyncClassListener.class); RootBeanDefinition listenerDef = new RootBeanDefinition(AsyncClassListener.class);
listenerDef.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); listenerDef.setScope(BeanDefinition.SCOPE_PROTOTYPE);
context.registerBeanDefinition("asyncTest", listenerDef); context.registerBeanDefinition("asyncTest", listenerDef);
context.registerBeanDefinition("autoProxyCreator", new RootBeanDefinition(DefaultAdvisorAutoProxyCreator.class)); context.registerBeanDefinition("autoProxyCreator", new RootBeanDefinition(DefaultAdvisorAutoProxyCreator.class));
context.registerBeanDefinition("asyncAdvisor", new RootBeanDefinition(AsyncAnnotationAdvisor.class)); context.registerBeanDefinition("asyncAdvisor", new RootBeanDefinition(AsyncAnnotationAdvisor.class));