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: .line 76
            iconst_3
            anewarray org.springframework.cglib.proxy.Callback
            dup
            iconst_0
         1: .line 77
            new org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor
            dup
            invokespecial org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.<init>:()V
            aastore
            dup
            iconst_1
         2: .line 78
            new org.springframework.context.annotation.ConfigurationClassEnhancer$BeanFactoryAwareMethodInterceptor
            dup
            invokespecial org.springframework.context.annotation.ConfigurationClassEnhancer$BeanFactoryAwareMethodInterceptor.<init>:()V
            aastore
            dup
            iconst_2
         3: .line 79
            getstatic org.springframework.cglib.proxy.NoOp.INSTANCE:Lorg/springframework/cglib/proxy/NoOp;
            aastore
         4: .line 76
            putstatic org.springframework.context.annotation.ConfigurationClassEnhancer.CALLBACKS:[Lorg/springframework/cglib/proxy/Callback;
         5: .line 82
            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: .line 87
            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: .line 89
            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 // org.springframework.context.annotation.ConfigurationClassEnhancer this
         0: .line 73
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.springframework.context.annotation.ConfigurationClassEnhancer this
      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 // org.springframework.context.annotation.ConfigurationClassEnhancer this
        start local 1 // java.lang.Class configClass
        start local 2 // java.lang.ClassLoader classLoader
         0: .line 98
            ldc Lorg/springframework/context/annotation/ConfigurationClassEnhancer$EnhancedConfiguration;
            aload 1 /* configClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 6
         1: .line 99
            getstatic org.springframework.context.annotation.ConfigurationClassEnhancer.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 5
         2: .line 100
            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: .line 105
            aload 1 /* configClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
         4: .line 100
            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: .line 107
      StackMap locals:
      StackMap stack:
            aload 1 /* configClass */
            areturn
         6: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* configClass */
            aload 2 /* classLoader */
            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 /* enhancedClass */
        start local 3 // java.lang.Class enhancedClass
         7: .line 110
            getstatic org.springframework.context.annotation.ConfigurationClassEnhancer.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
            ifeq 11
         8: .line 111
            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: .line 112
            aload 1 /* configClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 3 /* enhancedClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        10: .line 111
            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: .line 114
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 3 /* enhancedClass */
            areturn
        end local 3 // java.lang.Class enhancedClass
        end local 2 // java.lang.ClassLoader classLoader
        end local 1 // java.lang.Class configClass
        end local 0 // org.springframework.context.annotation.ConfigurationClassEnhancer this
      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 // org.springframework.context.annotation.ConfigurationClassEnhancer this
        start local 1 // java.lang.Class configSuperClass
        start local 2 // java.lang.ClassLoader classLoader
         0: .line 121
            new org.springframework.cglib.proxy.Enhancer
            dup
            invokespecial org.springframework.cglib.proxy.Enhancer.<init>:()V
            astore 3 /* enhancer */
        start local 3 // org.springframework.cglib.proxy.Enhancer enhancer
         1: .line 122
            aload 3 /* enhancer */
            aload 1 /* configSuperClass */
            invokevirtual org.springframework.cglib.proxy.Enhancer.setSuperclass:(Ljava/lang/Class;)V
         2: .line 123
            aload 3 /* enhancer */
            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: .line 124
            aload 3 /* enhancer */
            iconst_0
            invokevirtual org.springframework.cglib.proxy.Enhancer.setUseFactory:(Z)V
         4: .line 125
            aload 3 /* enhancer */
            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: .line 126
            aload 3 /* enhancer */
            new org.springframework.context.annotation.ConfigurationClassEnhancer$BeanFactoryAwareGeneratorStrategy
            dup
            aload 2 /* classLoader */
            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: .line 127
            aload 3 /* enhancer */
            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: .line 128
            aload 3 /* enhancer */
            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: .line 129
            aload 3 /* enhancer */
            areturn
        end local 3 // org.springframework.cglib.proxy.Enhancer enhancer
        end local 2 // java.lang.ClassLoader classLoader
        end local 1 // java.lang.Class configSuperClass
        end local 0 // org.springframework.context.annotation.ConfigurationClassEnhancer this
      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 // org.springframework.context.annotation.ConfigurationClassEnhancer this
        start local 1 // org.springframework.cglib.proxy.Enhancer enhancer
         0: .line 137
            aload 1 /* enhancer */
            invokevirtual org.springframework.cglib.proxy.Enhancer.createClass:()Ljava/lang/Class;
            astore 2 /* subclass */
        start local 2 // java.lang.Class subclass
         1: .line 140
            aload 2 /* subclass */
            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: .line 141
            aload 2 /* subclass */
            areturn
        end local 2 // java.lang.Class subclass
        end local 1 // org.springframework.cglib.proxy.Enhancer enhancer
        end local 0 // org.springframework.context.annotation.ConfigurationClassEnhancer this
      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