1
1
/*
2
- * Copyright 2002-2019 the original author or authors.
2
+ * Copyright 2002-2020 the original author or authors.
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
@@ -305,7 +305,7 @@ public <T> T createBean(Class<T> beanClass) throws BeansException {
305
305
public void autowireBean (Object existingBean ) {
306
306
// Use non-singleton bean definition, to avoid registering bean as dependent bean.
307
307
RootBeanDefinition bd = new RootBeanDefinition (ClassUtils .getUserClass (existingBean ));
308
- bd .setScope (BeanDefinition . SCOPE_PROTOTYPE );
308
+ bd .setScope (SCOPE_PROTOTYPE );
309
309
bd .allowCaching = ClassUtils .isCacheSafe (bd .getBeanClass (), getBeanClassLoader ());
310
310
BeanWrapper bw = new BeanWrapperImpl (existingBean );
311
311
initBeanWrapper (bw );
@@ -325,7 +325,7 @@ public Object configureBean(Object existingBean, String beanName) throws BeansEx
325
325
bd = new RootBeanDefinition (mbd );
326
326
}
327
327
if (!bd .isPrototype ()) {
328
- bd .setScope (BeanDefinition . SCOPE_PROTOTYPE );
328
+ bd .setScope (SCOPE_PROTOTYPE );
329
329
bd .allowCaching = ClassUtils .isCacheSafe (ClassUtils .getUserClass (existingBean ), getBeanClassLoader ());
330
330
}
331
331
BeanWrapper bw = new BeanWrapperImpl (existingBean );
@@ -349,28 +349,27 @@ public Object resolveDependency(DependencyDescriptor descriptor, @Nullable Strin
349
349
public Object createBean (Class <?> beanClass , int autowireMode , boolean dependencyCheck ) throws BeansException {
350
350
// Use non-singleton bean definition, to avoid registering bean as dependent bean.
351
351
RootBeanDefinition bd = new RootBeanDefinition (beanClass , autowireMode , dependencyCheck );
352
- bd .setScope (BeanDefinition . SCOPE_PROTOTYPE );
352
+ bd .setScope (SCOPE_PROTOTYPE );
353
353
return createBean (beanClass .getName (), bd , null );
354
354
}
355
355
356
356
@ Override
357
357
public Object autowire (Class <?> beanClass , int autowireMode , boolean dependencyCheck ) throws BeansException {
358
358
// Use non-singleton bean definition, to avoid registering bean as dependent bean.
359
- final RootBeanDefinition bd = new RootBeanDefinition (beanClass , autowireMode , dependencyCheck );
360
- bd .setScope (BeanDefinition . SCOPE_PROTOTYPE );
359
+ RootBeanDefinition bd = new RootBeanDefinition (beanClass , autowireMode , dependencyCheck );
360
+ bd .setScope (SCOPE_PROTOTYPE );
361
361
if (bd .getResolvedAutowireMode () == AUTOWIRE_CONSTRUCTOR ) {
362
362
return autowireConstructor (beanClass .getName (), bd , null , null ).getWrappedInstance ();
363
363
}
364
364
else {
365
365
Object bean ;
366
- final BeanFactory parent = this ;
367
366
if (System .getSecurityManager () != null ) {
368
- bean = AccessController .doPrivileged (( PrivilegedAction < Object >) () ->
369
- getInstantiationStrategy ().instantiate (bd , null , parent ),
367
+ bean = AccessController .doPrivileged (
368
+ ( PrivilegedAction < Object >) () -> getInstantiationStrategy ().instantiate (bd , null , this ),
370
369
getAccessControlContext ());
371
370
}
372
371
else {
373
- bean = getInstantiationStrategy ().instantiate (bd , null , parent );
372
+ bean = getInstantiationStrategy ().instantiate (bd , null , this );
374
373
}
375
374
populateBean (beanClass .getName (), bd , new BeanWrapperImpl (bean ));
376
375
return bean ;
@@ -387,7 +386,7 @@ public void autowireBeanProperties(Object existingBean, int autowireMode, boolea
387
386
// Use non-singleton bean definition, to avoid registering bean as dependent bean.
388
387
RootBeanDefinition bd =
389
388
new RootBeanDefinition (ClassUtils .getUserClass (existingBean ), autowireMode , dependencyCheck );
390
- bd .setScope (BeanDefinition . SCOPE_PROTOTYPE );
389
+ bd .setScope (SCOPE_PROTOTYPE );
391
390
BeanWrapper bw = new BeanWrapperImpl (existingBean );
392
391
initBeanWrapper (bw );
393
392
populateBean (bd .getBeanClass ().getName (), bd , bw );
@@ -523,7 +522,7 @@ protected Object createBean(String beanName, RootBeanDefinition mbd, @Nullable O
523
522
* @see #instantiateUsingFactoryMethod
524
523
* @see #autowireConstructor
525
524
*/
526
- protected Object doCreateBean (final String beanName , final RootBeanDefinition mbd , final @ Nullable Object [] args )
525
+ protected Object doCreateBean (String beanName , RootBeanDefinition mbd , @ Nullable Object [] args )
527
526
throws BeanCreationException {
528
527
529
528
// Instantiate the bean.
@@ -534,7 +533,7 @@ protected Object doCreateBean(final String beanName, final RootBeanDefinition mb
534
533
if (instanceWrapper == null ) {
535
534
instanceWrapper = createBeanInstance (beanName , mbd , args );
536
535
}
537
- final Object bean = instanceWrapper .getWrappedInstance ();
536
+ Object bean = instanceWrapper .getWrappedInstance ();
538
537
Class <?> beanType = instanceWrapper .getWrappedClass ();
539
538
if (beanType != NullBean .class ) {
540
539
mbd .resolvedTargetType = beanType ;
@@ -603,7 +602,7 @@ else if (!this.allowRawInjectionDespiteWrapping && hasDependentBean(beanName)) {
603
602
"] in its raw version as part of a circular reference, but has eventually been " +
604
603
"wrapped. This means that said other beans do not use the final version of the " +
605
604
"bean. This is often the result of over-eager type matching - consider using " +
606
- "'getBeanNamesOfType ' with the 'allowEagerInit' flag turned off, for example." );
605
+ "'getBeanNamesForType ' with the 'allowEagerInit' flag turned off, for example." );
607
606
}
608
607
}
609
608
}
@@ -860,7 +859,7 @@ protected Class<?> getTypeForFactoryBean(String beanName, RootBeanDefinition mbd
860
859
* @return the common {@code FactoryBean} object type, or {@code null} if none
861
860
*/
862
861
@ Nullable
863
- private Class <?> getTypeForFactoryBeanFromMethod (Class <?> beanClass , final String factoryMethodName ) {
862
+ private Class <?> getTypeForFactoryBeanFromMethod (Class <?> beanClass , String factoryMethodName ) {
864
863
class Holder { @ Nullable Class <?> value = null ; }
865
864
final Holder objectType = new Holder ();
866
865
@@ -1206,17 +1205,16 @@ protected Constructor<?>[] determineConstructorsFromBeanPostProcessors(@Nullable
1206
1205
* @param mbd the bean definition for the bean
1207
1206
* @return a BeanWrapper for the new instance
1208
1207
*/
1209
- protected BeanWrapper instantiateBean (final String beanName , final RootBeanDefinition mbd ) {
1208
+ protected BeanWrapper instantiateBean (String beanName , RootBeanDefinition mbd ) {
1210
1209
try {
1211
1210
Object beanInstance ;
1212
- final BeanFactory parent = this ;
1213
1211
if (System .getSecurityManager () != null ) {
1214
- beanInstance = AccessController .doPrivileged (( PrivilegedAction < Object >) () ->
1215
- getInstantiationStrategy ().instantiate (mbd , beanName , parent ),
1212
+ beanInstance = AccessController .doPrivileged (
1213
+ ( PrivilegedAction < Object >) () -> getInstantiationStrategy ().instantiate (mbd , beanName , this ),
1216
1214
getAccessControlContext ());
1217
1215
}
1218
1216
else {
1219
- beanInstance = getInstantiationStrategy ().instantiate (mbd , beanName , parent );
1217
+ beanInstance = getInstantiationStrategy ().instantiate (mbd , beanName , this );
1220
1218
}
1221
1219
BeanWrapper bw = new BeanWrapperImpl (beanInstance );
1222
1220
initBeanWrapper (bw );
@@ -1663,7 +1661,7 @@ private Object convertForProperty(
1663
1661
* @see #invokeInitMethods
1664
1662
* @see #applyBeanPostProcessorsAfterInitialization
1665
1663
*/
1666
- protected Object initializeBean (final String beanName , final Object bean , @ Nullable RootBeanDefinition mbd ) {
1664
+ protected Object initializeBean (String beanName , Object bean , @ Nullable RootBeanDefinition mbd ) {
1667
1665
if (System .getSecurityManager () != null ) {
1668
1666
AccessController .doPrivileged ((PrivilegedAction <Object >) () -> {
1669
1667
invokeAwareMethods (beanName , bean );
@@ -1694,7 +1692,7 @@ protected Object initializeBean(final String beanName, final Object bean, @Nulla
1694
1692
return wrappedBean ;
1695
1693
}
1696
1694
1697
- private void invokeAwareMethods (final String beanName , final Object bean ) {
1695
+ private void invokeAwareMethods (String beanName , Object bean ) {
1698
1696
if (bean instanceof Aware ) {
1699
1697
if (bean instanceof BeanNameAware ) {
1700
1698
((BeanNameAware ) bean ).setBeanName (beanName );
@@ -1723,7 +1721,7 @@ private void invokeAwareMethods(final String beanName, final Object bean) {
1723
1721
* @throws Throwable if thrown by init methods or by the invocation process
1724
1722
* @see #invokeCustomInitMethod
1725
1723
*/
1726
- protected void invokeInitMethods (String beanName , final Object bean , @ Nullable RootBeanDefinition mbd )
1724
+ protected void invokeInitMethods (String beanName , Object bean , @ Nullable RootBeanDefinition mbd )
1727
1725
throws Throwable {
1728
1726
1729
1727
boolean isInitializingBean = (bean instanceof InitializingBean );
@@ -1764,12 +1762,12 @@ protected void invokeInitMethods(String beanName, final Object bean, @Nullable R
1764
1762
* methods with arguments.
1765
1763
* @see #invokeInitMethods
1766
1764
*/
1767
- protected void invokeCustomInitMethod (String beanName , final Object bean , RootBeanDefinition mbd )
1765
+ protected void invokeCustomInitMethod (String beanName , Object bean , RootBeanDefinition mbd )
1768
1766
throws Throwable {
1769
1767
1770
1768
String initMethodName = mbd .getInitMethodName ();
1771
1769
Assert .state (initMethodName != null , "No init method set" );
1772
- final Method initMethod = (mbd .isNonPublicAccessAllowed () ?
1770
+ Method initMethod = (mbd .isNonPublicAccessAllowed () ?
1773
1771
BeanUtils .findMethod (bean .getClass (), initMethodName ) :
1774
1772
ClassUtils .getMethodIfAvailable (bean .getClass (), initMethodName ));
1775
1773
@@ -1798,8 +1796,8 @@ protected void invokeCustomInitMethod(String beanName, final Object bean, RootBe
1798
1796
return null ;
1799
1797
});
1800
1798
try {
1801
- AccessController .doPrivileged ((PrivilegedExceptionAction <Object >) () ->
1802
- initMethod .invoke (bean ), getAccessControlContext ());
1799
+ AccessController .doPrivileged ((PrivilegedExceptionAction <Object >)
1800
+ () -> initMethod .invoke (bean ), getAccessControlContext ());
1803
1801
}
1804
1802
catch (PrivilegedActionException pae ) {
1805
1803
InvocationTargetException ex = (InvocationTargetException ) pae .getException ();
0 commit comments