|
|
|
@ -243,7 +243,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac |
|
|
|
|
* Ignore the given dependency type for autowiring: |
|
|
|
|
* for example, String. Default is none. |
|
|
|
|
*/ |
|
|
|
|
public void ignoreDependencyType(Class type) { |
|
|
|
|
public void ignoreDependencyType(Class<?> type) { |
|
|
|
|
this.ignoredDependencyTypes.add(type); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -257,7 +257,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac |
|
|
|
|
* @see org.springframework.beans.factory.BeanFactoryAware |
|
|
|
|
* @see org.springframework.context.ApplicationContextAware |
|
|
|
|
*/ |
|
|
|
|
public void ignoreDependencyInterface(Class ifc) { |
|
|
|
|
public void ignoreDependencyInterface(Class<?> ifc) { |
|
|
|
|
this.ignoredDependencyInterfaces.add(ifc); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -334,7 +334,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac |
|
|
|
|
//-------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
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.
|
|
|
|
|
RootBeanDefinition bd = new RootBeanDefinition(beanClass, autowireMode, dependencyCheck); |
|
|
|
|
bd.setScope(BeanDefinition.SCOPE_PROTOTYPE); |
|
|
|
@ -342,7 +342,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
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.
|
|
|
|
|
final RootBeanDefinition bd = new RootBeanDefinition(beanClass, autowireMode, dependencyCheck); |
|
|
|
|
bd.setScope(BeanDefinition.SCOPE_PROTOTYPE); |
|
|
|
@ -507,7 +507,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac |
|
|
|
|
instanceWrapper = createBeanInstance(beanName, mbd, args); |
|
|
|
|
} |
|
|
|
|
final Object bean = (instanceWrapper != null ? instanceWrapper.getWrappedInstance() : null); |
|
|
|
|
Class beanType = (instanceWrapper != null ? instanceWrapper.getWrappedClass() : null); |
|
|
|
|
Class<?> beanType = (instanceWrapper != null ? instanceWrapper.getWrappedClass() : null); |
|
|
|
|
|
|
|
|
|
// Allow post-processors to modify the merged bean definition.
|
|
|
|
|
synchronized (mbd.postProcessingLock) { |
|
|
|
@ -605,7 +605,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac |
|
|
|
|
for (BeanPostProcessor bp : getBeanPostProcessors()) { |
|
|
|
|
if (bp instanceof SmartInstantiationAwareBeanPostProcessor) { |
|
|
|
|
SmartInstantiationAwareBeanPostProcessor ibp = (SmartInstantiationAwareBeanPostProcessor) bp; |
|
|
|
|
Class predicted = ibp.predictBeanType(targetType, beanName); |
|
|
|
|
Class<?> predicted = ibp.predictBeanType(targetType, beanName); |
|
|
|
|
if (predicted != null && (typesToMatch.length != 1 || !FactoryBean.class.equals(typesToMatch[0]) || |
|
|
|
|
FactoryBean.class.isAssignableFrom(predicted))) { |
|
|
|
|
return predicted; |
|
|
|
@ -855,7 +855,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac |
|
|
|
|
* @throws BeansException if any post-processing failed |
|
|
|
|
* @see MergedBeanDefinitionPostProcessor#postProcessMergedBeanDefinition |
|
|
|
|
*/ |
|
|
|
|
protected void applyMergedBeanDefinitionPostProcessors(RootBeanDefinition mbd, Class beanType, String beanName) |
|
|
|
|
protected void applyMergedBeanDefinitionPostProcessors(RootBeanDefinition mbd, Class<?> beanType, String beanName) |
|
|
|
|
throws BeansException { |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
@ -906,7 +906,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac |
|
|
|
|
* @throws BeansException if any post-processing failed |
|
|
|
|
* @see InstantiationAwareBeanPostProcessor#postProcessBeforeInstantiation |
|
|
|
|
*/ |
|
|
|
|
protected Object applyBeanPostProcessorsBeforeInstantiation(Class beanClass, String beanName) |
|
|
|
|
protected Object applyBeanPostProcessorsBeforeInstantiation(Class<?> beanClass, String beanName) |
|
|
|
|
throws BeansException { |
|
|
|
|
|
|
|
|
|
for (BeanPostProcessor bp : getBeanPostProcessors()) { |
|
|
|
@ -935,7 +935,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac |
|
|
|
|
*/ |
|
|
|
|
protected BeanWrapper createBeanInstance(String beanName, RootBeanDefinition mbd, Object[] args) { |
|
|
|
|
// Make sure bean class is actually resolved at this point.
|
|
|
|
|
Class beanClass = resolveBeanClass(mbd, beanName); |
|
|
|
|
Class<?> beanClass = resolveBeanClass(mbd, beanName); |
|
|
|
|
|
|
|
|
|
if (beanClass != null && !Modifier.isPublic(beanClass.getModifiers()) && !mbd.isNonPublicAccessAllowed()) { |
|
|
|
|
throw new BeanCreationException(mbd.getResourceDescription(), beanName, |
|
|
|
@ -987,7 +987,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac |
|
|
|
|
* @throws org.springframework.beans.BeansException in case of errors |
|
|
|
|
* @see org.springframework.beans.factory.config.SmartInstantiationAwareBeanPostProcessor#determineCandidateConstructors |
|
|
|
|
*/ |
|
|
|
|
protected Constructor[] determineConstructorsFromBeanPostProcessors(Class beanClass, String beanName) |
|
|
|
|
protected Constructor[] determineConstructorsFromBeanPostProcessors(Class<?> beanClass, String beanName) |
|
|
|
|
throws BeansException { |
|
|
|
|
|
|
|
|
|
if (beanClass != null && hasInstantiationAwareBeanPostProcessors()) { |
|
|
|
|