class org.springframework.context.annotation.ConfigurationClassEnhancer
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.springframework.context.annotation.ConfigurationClassEnhancer
super_class: java.lang.Object
{
private static final org.springframework.cglib.proxy.Callback[] CALLBACKS;
descriptor: [Lorg/springframework/cglib/proxy/Callback;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.springframework.context.annotation.ConfigurationClassEnhancer$ConditionalCallbackFilter CALLBACK_FILTER;
descriptor: Lorg/springframework/context/annotation/ConfigurationClassEnhancer$ConditionalCallbackFilter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String BEAN_FACTORY_FIELD;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "$$beanFactory"
private static final org.apache.commons.logging.Log logger;
descriptor: Lorg/apache/commons/logging/Log;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.springframework.objenesis.SpringObjenesis objenesis;
descriptor: Lorg/springframework/objenesis/SpringObjenesis;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=0, args_size=0
0: iconst_3
anewarray org.springframework.cglib.proxy.Callback
dup
iconst_0
1: new org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor
dup
invokespecial org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.<init>:()V
aastore
dup
iconst_1
2: new org.springframework.context.annotation.ConfigurationClassEnhancer$BeanFactoryAwareMethodInterceptor
dup
invokespecial org.springframework.context.annotation.ConfigurationClassEnhancer$BeanFactoryAwareMethodInterceptor.<init>:()V
aastore
dup
iconst_2
3: getstatic org.springframework.cglib.proxy.NoOp.INSTANCE:Lorg/springframework/cglib/proxy/NoOp;
aastore
4: putstatic org.springframework.context.annotation.ConfigurationClassEnhancer.CALLBACKS:[Lorg/springframework/cglib/proxy/Callback;
5: new org.springframework.context.annotation.ConfigurationClassEnhancer$ConditionalCallbackFilter
dup
getstatic org.springframework.context.annotation.ConfigurationClassEnhancer.CALLBACKS:[Lorg/springframework/cglib/proxy/Callback;
invokespecial org.springframework.context.annotation.ConfigurationClassEnhancer$ConditionalCallbackFilter.<init>:([Lorg/springframework/cglib/proxy/Callback;)V
putstatic org.springframework.context.annotation.ConfigurationClassEnhancer.CALLBACK_FILTER:Lorg/springframework/context/annotation/ConfigurationClassEnhancer$ConditionalCallbackFilter;
6: ldc Lorg/springframework/context/annotation/ConfigurationClassEnhancer;
invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
putstatic org.springframework.context.annotation.ConfigurationClassEnhancer.logger:Lorg/apache/commons/logging/Log;
7: new org.springframework.objenesis.SpringObjenesis
dup
invokespecial org.springframework.objenesis.SpringObjenesis.<init>:()V
putstatic org.springframework.context.annotation.ConfigurationClassEnhancer.objenesis:Lorg/springframework/objenesis/SpringObjenesis;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/context/annotation/ConfigurationClassEnhancer;
public java.lang.Class<?> enhance(java.lang.Class<?>, java.lang.ClassLoader);
descriptor: (Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: ldc Lorg/springframework/context/annotation/ConfigurationClassEnhancer$EnhancedConfiguration;
aload 1
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 6
1: getstatic org.springframework.context.annotation.ConfigurationClassEnhancer.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 5
2: getstatic org.springframework.context.annotation.ConfigurationClassEnhancer.logger:Lorg/apache/commons/logging/Log;
ldc "Ignoring request to enhance %s as it has already been enhanced. This usually indicates that more than one ConfigurationClassPostProcessor has been registered (e.g. via <context:annotation-config>). This is harmless, but you may want check your configuration and remove one CCPP if possible"
iconst_1
anewarray java.lang.Object
dup
iconst_0
3: aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
4: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
5: StackMap locals:
StackMap stack:
aload 1
areturn
6: StackMap locals:
StackMap stack:
aload 0
aload 0
aload 1
aload 2
invokevirtual org.springframework.context.annotation.ConfigurationClassEnhancer.newEnhancer:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Lorg/springframework/cglib/proxy/Enhancer;
invokevirtual org.springframework.context.annotation.ConfigurationClassEnhancer.createClass:(Lorg/springframework/cglib/proxy/Enhancer;)Ljava/lang/Class;
astore 3
start local 3 7: getstatic org.springframework.context.annotation.ConfigurationClassEnhancer.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
ifeq 11
8: getstatic org.springframework.context.annotation.ConfigurationClassEnhancer.logger:Lorg/apache/commons/logging/Log;
ldc "Successfully enhanced %s; enhanced class name is: %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
9: aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 3
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
10: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;)V
11: StackMap locals: java.lang.Class
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/springframework/context/annotation/ConfigurationClassEnhancer;
0 12 1 configClass Ljava/lang/Class<*>;
0 12 2 classLoader Ljava/lang/ClassLoader;
7 12 3 enhancedClass Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;Ljava/lang/ClassLoader;)Ljava/lang/Class<*>;
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
configClass
classLoader
private org.springframework.cglib.proxy.Enhancer newEnhancer(java.lang.Class<?>, java.lang.ClassLoader);
descriptor: (Ljava/lang/Class;Ljava/lang/ClassLoader;)Lorg/springframework/cglib/proxy/Enhancer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new org.springframework.cglib.proxy.Enhancer
dup
invokespecial org.springframework.cglib.proxy.Enhancer.<init>:()V
astore 3
start local 3 1: aload 3
aload 1
invokevirtual org.springframework.cglib.proxy.Enhancer.setSuperclass:(Ljava/lang/Class;)V
2: aload 3
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Lorg/springframework/context/annotation/ConfigurationClassEnhancer$EnhancedConfiguration;
aastore
invokevirtual org.springframework.cglib.proxy.Enhancer.setInterfaces:([Ljava/lang/Class;)V
3: aload 3
iconst_0
invokevirtual org.springframework.cglib.proxy.Enhancer.setUseFactory:(Z)V
4: aload 3
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
5: aload 3
new org.springframework.context.annotation.ConfigurationClassEnhancer$BeanFactoryAwareGeneratorStrategy
dup
aload 2
invokespecial org.springframework.context.annotation.ConfigurationClassEnhancer$BeanFactoryAwareGeneratorStrategy.<init>:(Ljava/lang/ClassLoader;)V
invokevirtual org.springframework.cglib.proxy.Enhancer.setStrategy:(Lorg/springframework/cglib/core/GeneratorStrategy;)V
6: aload 3
getstatic org.springframework.context.annotation.ConfigurationClassEnhancer.CALLBACK_FILTER:Lorg/springframework/context/annotation/ConfigurationClassEnhancer$ConditionalCallbackFilter;
invokevirtual org.springframework.cglib.proxy.Enhancer.setCallbackFilter:(Lorg/springframework/cglib/proxy/CallbackFilter;)V
7: aload 3
getstatic org.springframework.context.annotation.ConfigurationClassEnhancer.CALLBACK_FILTER:Lorg/springframework/context/annotation/ConfigurationClassEnhancer$ConditionalCallbackFilter;
invokevirtual org.springframework.context.annotation.ConfigurationClassEnhancer$ConditionalCallbackFilter.getCallbackTypes:()[Ljava/lang/Class;
invokevirtual org.springframework.cglib.proxy.Enhancer.setCallbackTypes:([Ljava/lang/Class;)V
8: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/context/annotation/ConfigurationClassEnhancer;
0 9 1 configSuperClass Ljava/lang/Class<*>;
0 9 2 classLoader Ljava/lang/ClassLoader;
1 9 3 enhancer Lorg/springframework/cglib/proxy/Enhancer;
Signature: (Ljava/lang/Class<*>;Ljava/lang/ClassLoader;)Lorg/springframework/cglib/proxy/Enhancer;
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
configSuperClass
classLoader
private java.lang.Class<?> createClass(org.springframework.cglib.proxy.Enhancer);
descriptor: (Lorg/springframework/cglib/proxy/Enhancer;)Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.springframework.cglib.proxy.Enhancer.createClass:()Ljava/lang/Class;
astore 2
start local 2 1: aload 2
getstatic org.springframework.context.annotation.ConfigurationClassEnhancer.CALLBACKS:[Lorg/springframework/cglib/proxy/Callback;
invokestatic org.springframework.cglib.proxy.Enhancer.registerStaticCallbacks:(Ljava/lang/Class;[Lorg/springframework/cglib/proxy/Callback;)V
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/context/annotation/ConfigurationClassEnhancer;
0 3 1 enhancer Lorg/springframework/cglib/proxy/Enhancer;
1 3 2 subclass Ljava/lang/Class<*>;
Signature: (Lorg/springframework/cglib/proxy/Enhancer;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
enhancer
}
SourceFile: "ConfigurationClassEnhancer.java"
NestMembers:
org.springframework.context.annotation.ConfigurationClassEnhancer$BeanFactoryAwareGeneratorStrategy org.springframework.context.annotation.ConfigurationClassEnhancer$BeanFactoryAwareGeneratorStrategy$1 org.springframework.context.annotation.ConfigurationClassEnhancer$BeanFactoryAwareMethodInterceptor org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor org.springframework.context.annotation.ConfigurationClassEnhancer$ConditionalCallback org.springframework.context.annotation.ConfigurationClassEnhancer$ConditionalCallbackFilter org.springframework.context.annotation.ConfigurationClassEnhancer$EnhancedConfiguration
InnerClasses:
private BeanFactoryAwareGeneratorStrategy = org.springframework.context.annotation.ConfigurationClassEnhancer$BeanFactoryAwareGeneratorStrategy of org.springframework.context.annotation.ConfigurationClassEnhancer
private BeanFactoryAwareMethodInterceptor = org.springframework.context.annotation.ConfigurationClassEnhancer$BeanFactoryAwareMethodInterceptor of org.springframework.context.annotation.ConfigurationClassEnhancer
private BeanMethodInterceptor = org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor of org.springframework.context.annotation.ConfigurationClassEnhancer
private abstract ConditionalCallback = org.springframework.context.annotation.ConfigurationClassEnhancer$ConditionalCallback of org.springframework.context.annotation.ConfigurationClassEnhancer
private ConditionalCallbackFilter = org.springframework.context.annotation.ConfigurationClassEnhancer$ConditionalCallbackFilter of org.springframework.context.annotation.ConfigurationClassEnhancer
public abstract EnhancedConfiguration = org.springframework.context.annotation.ConfigurationClassEnhancer$EnhancedConfiguration of org.springframework.context.annotation.ConfigurationClassEnhancer