class org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$CglibSubclassCreator
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$CglibSubclassCreator
super_class: java.lang.Object
{
private static final java.lang.Class<?>[] CALLBACK_TYPES;
descriptor: [Ljava/lang/Class;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: [Ljava/lang/Class<*>;
private final org.springframework.beans.factory.support.RootBeanDefinition beanDefinition;
descriptor: Lorg/springframework/beans/factory/support/RootBeanDefinition;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.springframework.beans.factory.BeanFactory owner;
descriptor: Lorg/springframework/beans/factory/BeanFactory;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: iconst_3
anewarray java.lang.Class
dup
iconst_0
ldc Lorg/springframework/cglib/proxy/NoOp;
aastore
dup
iconst_1
ldc Lorg/springframework/beans/factory/support/CglibSubclassingInstantiationStrategy$LookupOverrideMethodInterceptor;
aastore
dup
iconst_2
ldc Lorg/springframework/beans/factory/support/CglibSubclassingInstantiationStrategy$ReplaceOverrideMethodInterceptor;
aastore
1: putstatic org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$CglibSubclassCreator.CALLBACK_TYPES:[Ljava/lang/Class;
2: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.springframework.beans.factory.support.RootBeanDefinition, org.springframework.beans.factory.BeanFactory);
descriptor: (Lorg/springframework/beans/factory/support/RootBeanDefinition;Lorg/springframework/beans/factory/BeanFactory;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$CglibSubclassCreator.beanDefinition:Lorg/springframework/beans/factory/support/RootBeanDefinition;
2: aload 0
aload 2
putfield org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$CglibSubclassCreator.owner:Lorg/springframework/beans/factory/BeanFactory;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/beans/factory/support/CglibSubclassingInstantiationStrategy$CglibSubclassCreator;
0 4 1 beanDefinition Lorg/springframework/beans/factory/support/RootBeanDefinition;
0 4 2 owner Lorg/springframework/beans/factory/BeanFactory;
MethodParameters:
Name Flags
beanDefinition
owner
public instantiate(java.lang.reflect.Constructor<?>, []);
descriptor: (Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=8, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 0
getfield org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$CglibSubclassCreator.beanDefinition:Lorg/springframework/beans/factory/support/RootBeanDefinition;
invokevirtual org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$CglibSubclassCreator.createEnhancedSubclass:(Lorg/springframework/beans/factory/support/RootBeanDefinition;)Ljava/lang/Class;
astore 3
start local 3 1: aload 1
ifnonnull 4
2: aload 3
invokestatic org.springframework.beans.BeanUtils.instantiateClass:(Ljava/lang/Class;)Ljava/lang/Object;
astore 4
start local 4 3: goto 11
end local 4 4: StackMap locals: java.lang.Class
StackMap stack:
aload 3
aload 1
invokevirtual java.lang.reflect.Constructor.getParameterTypes:()[Ljava/lang/Class;
invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
astore 5
start local 5 5: aload 5
aload 2
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
astore 4
end local 5 start local 4 6: goto 11
end local 4 7: StackMap locals:
StackMap stack: java.lang.Exception
astore 5
start local 5 8: new org.springframework.beans.BeanInstantiationException
dup
aload 0
getfield org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$CglibSubclassCreator.beanDefinition:Lorg/springframework/beans/factory/support/RootBeanDefinition;
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getBeanClass:()Ljava/lang/Class;
9: new java.lang.StringBuilder
dup
ldc "Failed to invoke constructor for CGLIB enhanced subclass ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 5
10: invokespecial org.springframework.beans.BeanInstantiationException.<init>:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 start local 4 11: StackMap locals: java.lang.Object
StackMap stack:
aload 4
checkcast org.springframework.cglib.proxy.Factory
astore 5
start local 5 12: aload 5
iconst_3
anewarray org.springframework.cglib.proxy.Callback
dup
iconst_0
getstatic org.springframework.cglib.proxy.NoOp.INSTANCE:Lorg/springframework/cglib/proxy/NoOp;
aastore
dup
iconst_1
13: new org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$LookupOverrideMethodInterceptor
dup
aload 0
getfield org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$CglibSubclassCreator.beanDefinition:Lorg/springframework/beans/factory/support/RootBeanDefinition;
aload 0
getfield org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$CglibSubclassCreator.owner:Lorg/springframework/beans/factory/BeanFactory;
invokespecial org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$LookupOverrideMethodInterceptor.<init>:(Lorg/springframework/beans/factory/support/RootBeanDefinition;Lorg/springframework/beans/factory/BeanFactory;)V
aastore
dup
iconst_2
14: new org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$ReplaceOverrideMethodInterceptor
dup
aload 0
getfield org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$CglibSubclassCreator.beanDefinition:Lorg/springframework/beans/factory/support/RootBeanDefinition;
aload 0
getfield org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$CglibSubclassCreator.owner:Lorg/springframework/beans/factory/BeanFactory;
invokespecial org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$ReplaceOverrideMethodInterceptor.<init>:(Lorg/springframework/beans/factory/support/RootBeanDefinition;Lorg/springframework/beans/factory/BeanFactory;)V
aastore
15: invokeinterface org.springframework.cglib.proxy.Factory.setCallbacks:([Lorg/springframework/cglib/proxy/Callback;)V
16: aload 4
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/springframework/beans/factory/support/CglibSubclassingInstantiationStrategy$CglibSubclassCreator;
0 17 1 ctor Ljava/lang/reflect/Constructor<*>;
0 17 2 args [Ljava/lang/Object;
1 17 3 subclass Ljava/lang/Class<*>;
3 4 4 instance Ljava/lang/Object;
6 7 4 instance Ljava/lang/Object;
11 17 4 instance Ljava/lang/Object;
5 6 5 enhancedSubclassConstructor Ljava/lang/reflect/Constructor<*>;
8 11 5 ex Ljava/lang/Exception;
12 17 5 factory Lorg/springframework/cglib/proxy/Factory;
Exception table:
from to target type
4 6 7 Class java.lang.Exception
Signature: (Ljava/lang/reflect/Constructor<*>;[Ljava/lang/Object;)Ljava/lang/Object;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
MethodParameters:
Name Flags
ctor
args
private java.lang.Class<?> createEnhancedSubclass(org.springframework.beans.factory.support.RootBeanDefinition);
descriptor: (Lorg/springframework/beans/factory/support/RootBeanDefinition;)Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: new org.springframework.cglib.proxy.Enhancer
dup
invokespecial org.springframework.cglib.proxy.Enhancer.<init>:()V
astore 2
start local 2 1: aload 2
aload 1
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getBeanClass:()Ljava/lang/Class;
invokevirtual org.springframework.cglib.proxy.Enhancer.setSuperclass:(Ljava/lang/Class;)V
2: aload 2
getstatic org.springframework.cglib.core.SpringNamingPolicy.INSTANCE:Lorg/springframework/cglib/core/SpringNamingPolicy;
invokevirtual org.springframework.cglib.proxy.Enhancer.setNamingPolicy:(Lorg/springframework/cglib/core/NamingPolicy;)V
3: aload 0
getfield org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$CglibSubclassCreator.owner:Lorg/springframework/beans/factory/BeanFactory;
instanceof org.springframework.beans.factory.config.ConfigurableBeanFactory
ifeq 6
4: aload 0
getfield org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$CglibSubclassCreator.owner:Lorg/springframework/beans/factory/BeanFactory;
checkcast org.springframework.beans.factory.config.ConfigurableBeanFactory
invokeinterface org.springframework.beans.factory.config.ConfigurableBeanFactory.getBeanClassLoader:()Ljava/lang/ClassLoader;
astore 3
start local 3 5: aload 2
new org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$ClassLoaderAwareGeneratorStrategy
dup
aload 3
invokespecial org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$ClassLoaderAwareGeneratorStrategy.<init>:(Ljava/lang/ClassLoader;)V
invokevirtual org.springframework.cglib.proxy.Enhancer.setStrategy:(Lorg/springframework/cglib/core/GeneratorStrategy;)V
end local 3 6: StackMap locals: org.springframework.cglib.proxy.Enhancer
StackMap stack:
aload 2
new org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$MethodOverrideCallbackFilter
dup
aload 1
invokespecial org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$MethodOverrideCallbackFilter.<init>:(Lorg/springframework/beans/factory/support/RootBeanDefinition;)V
invokevirtual org.springframework.cglib.proxy.Enhancer.setCallbackFilter:(Lorg/springframework/cglib/proxy/CallbackFilter;)V
7: aload 2
getstatic org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$CglibSubclassCreator.CALLBACK_TYPES:[Ljava/lang/Class;
invokevirtual org.springframework.cglib.proxy.Enhancer.setCallbackTypes:([Ljava/lang/Class;)V
8: aload 2
invokevirtual org.springframework.cglib.proxy.Enhancer.createClass:()Ljava/lang/Class;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/beans/factory/support/CglibSubclassingInstantiationStrategy$CglibSubclassCreator;
0 9 1 beanDefinition Lorg/springframework/beans/factory/support/RootBeanDefinition;
1 9 2 enhancer Lorg/springframework/cglib/proxy/Enhancer;
5 6 3 cl Ljava/lang/ClassLoader;
Signature: (Lorg/springframework/beans/factory/support/RootBeanDefinition;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
beanDefinition
}
SourceFile: "CglibSubclassingInstantiationStrategy.java"
NestHost: org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy
InnerClasses:
private CglibSubclassCreator = org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$CglibSubclassCreator of org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy
private ClassLoaderAwareGeneratorStrategy = org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$ClassLoaderAwareGeneratorStrategy of org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy
private LookupOverrideMethodInterceptor = org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$LookupOverrideMethodInterceptor of org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy
private MethodOverrideCallbackFilter = org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$MethodOverrideCallbackFilter of org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy
private ReplaceOverrideMethodInterceptor = org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy$ReplaceOverrideMethodInterceptor of org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy