org.springframework.context.annotation

## Class AnnotationConfigUtils

- java.lang.Object
- - org.springframework.context.annotation.AnnotationConfigUtils

-     public class AnnotationConfigUtils
      extends Object

  Utility class that allows for convenient registration of common `BeanPostProcessor` and `BeanFactoryPostProcessor` definitions for annotation-based configuration. Also registers a common `AutowireCandidateResolver`.
  Since:
    2.5
  Author:
    Mark Fisher, Juergen Hoeller, Chris Beams, Phillip Webb
  See Also:
    `ContextAnnotationAutowireCandidateResolver`, `CommonAnnotationBeanPostProcessor`, `ConfigurationClassPostProcessor`, `AutowiredAnnotationBeanPostProcessor`, `RequiredAnnotationBeanPostProcessor`, `PersistenceAnnotationBeanPostProcessor`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `ASYNC_ANNOTATION_PROCESSOR_BEAN_NAME` The bean name of the internally managed Async annotation processor.
    `static String` | `ASYNC_EXECUTION_ASPECT_BEAN_NAME` The bean name of the internally managed AspectJ async execution aspect.
    `static String` | `ASYNC_EXECUTION_ASPECT_CLASS_NAME` The class name of the AspectJ async execution aspect.
    `static String` | `ASYNC_EXECUTION_ASPECT_CONFIGURATION_CLASS_NAME` The name of the AspectJ async execution aspect @`Configuration` class.
    `static String` | `AUTOWIRED_ANNOTATION_PROCESSOR_BEAN_NAME` The bean name of the internally managed Autowired annotation processor.
    `static String` | `CACHE_ADVISOR_BEAN_NAME` The bean name of the internally managed cache advisor.
    `static String` | `CACHE_ASPECT_BEAN_NAME` The bean name of the internally managed cache aspect.
    `static String` | `CACHE_ASPECT_CLASS_NAME` The class name of the AspectJ caching aspect.
    `static String` | `CACHE_ASPECT_CONFIGURATION_CLASS_NAME` The name of the AspectJ caching aspect @`Configuration` class.
    `static String` | `COMMON_ANNOTATION_PROCESSOR_BEAN_NAME` The bean name of the internally managed JSR-250 annotation processor.
    `static String` | `CONFIGURATION_ANNOTATION_PROCESSOR_BEAN_NAME` The bean name of the internally managed Configuration annotation processor.
    `static String` | `CONFIGURATION_BEAN_NAME_GENERATOR` The bean name of the internally managed BeanNameGenerator for use when processing `Configuration` classes.
    `static String` | `PERSISTENCE_ANNOTATION_PROCESSOR_BEAN_NAME` The bean name of the internally managed JPA annotation processor.
    `static String` | `REQUIRED_ANNOTATION_PROCESSOR_BEAN_NAME` The bean name of the internally managed Required annotation processor.
    `static String` | `SCHEDULED_ANNOTATION_PROCESSOR_BEAN_NAME` The bean name of the internally managed Scheduled annotation processor.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AnnotationConfigUtils()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `processCommonDefinitionAnnotations(AnnotatedBeanDefinition abd)`
    `static void` | `registerAnnotationConfigProcessors(BeanDefinitionRegistry registry)` Register all relevant annotation post processors in the given registry.
    `static Set<BeanDefinitionHolder>` | `registerAnnotationConfigProcessors(BeanDefinitionRegistry registry, Object source)` Register all relevant annotation post processors in the given registry.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### CONFIGURATION_ANNOTATION_PROCESSOR_BEAN_NAME

          public static final String CONFIGURATION_ANNOTATION_PROCESSOR_BEAN_NAME

      The bean name of the internally managed Configuration annotation processor.
      See Also:
        Constant Field Values

    - #### CONFIGURATION_BEAN_NAME_GENERATOR

          public static final String CONFIGURATION_BEAN_NAME_GENERATOR

      The bean name of the internally managed BeanNameGenerator for use when processing `Configuration` classes. Set by `AnnotationConfigApplicationContext` and `AnnotationConfigWebApplicationContext` during bootstrap in order to make any custom name generation strategy available to the underlying `ConfigurationClassPostProcessor`.
      Since:
        3.1.1
      See Also:
        Constant Field Values

    - #### AUTOWIRED_ANNOTATION_PROCESSOR_BEAN_NAME

          public static final String AUTOWIRED_ANNOTATION_PROCESSOR_BEAN_NAME

      The bean name of the internally managed Autowired annotation processor.
      See Also:
        Constant Field Values

    - #### REQUIRED_ANNOTATION_PROCESSOR_BEAN_NAME

          public static final String REQUIRED_ANNOTATION_PROCESSOR_BEAN_NAME

      The bean name of the internally managed Required annotation processor.
      See Also:
        Constant Field Values

    - #### COMMON_ANNOTATION_PROCESSOR_BEAN_NAME

          public static final String COMMON_ANNOTATION_PROCESSOR_BEAN_NAME

      The bean name of the internally managed JSR-250 annotation processor.
      See Also:
        Constant Field Values

    - #### SCHEDULED_ANNOTATION_PROCESSOR_BEAN_NAME

          public static final String SCHEDULED_ANNOTATION_PROCESSOR_BEAN_NAME

      The bean name of the internally managed Scheduled annotation processor.
      See Also:
        Constant Field Values

    - #### ASYNC_ANNOTATION_PROCESSOR_BEAN_NAME

          public static final String ASYNC_ANNOTATION_PROCESSOR_BEAN_NAME

      The bean name of the internally managed Async annotation processor.
      See Also:
        Constant Field Values

    - #### ASYNC_EXECUTION_ASPECT_BEAN_NAME

          public static final String ASYNC_EXECUTION_ASPECT_BEAN_NAME

      The bean name of the internally managed AspectJ async execution aspect.
      See Also:
        Constant Field Values

    - #### ASYNC_EXECUTION_ASPECT_CLASS_NAME

          public static final String ASYNC_EXECUTION_ASPECT_CLASS_NAME

      The class name of the AspectJ async execution aspect.
      See Also:
        Constant Field Values

    - #### ASYNC_EXECUTION_ASPECT_CONFIGURATION_CLASS_NAME

          public static final String ASYNC_EXECUTION_ASPECT_CONFIGURATION_CLASS_NAME

      The name of the AspectJ async execution aspect @`Configuration` class.
      See Also:
        Constant Field Values

    - #### CACHE_ADVISOR_BEAN_NAME

          public static final String CACHE_ADVISOR_BEAN_NAME

      The bean name of the internally managed cache advisor.
      See Also:
        Constant Field Values

    - #### CACHE_ASPECT_BEAN_NAME

          public static final String CACHE_ASPECT_BEAN_NAME

      The bean name of the internally managed cache aspect.
      See Also:
        Constant Field Values

    - #### CACHE_ASPECT_CLASS_NAME

          public static final String CACHE_ASPECT_CLASS_NAME

      The class name of the AspectJ caching aspect.
      See Also:
        Constant Field Values

    - #### CACHE_ASPECT_CONFIGURATION_CLASS_NAME

          public static final String CACHE_ASPECT_CONFIGURATION_CLASS_NAME

      The name of the AspectJ caching aspect @`Configuration` class.
      See Also:
        Constant Field Values

    - #### PERSISTENCE_ANNOTATION_PROCESSOR_BEAN_NAME

          public static final String PERSISTENCE_ANNOTATION_PROCESSOR_BEAN_NAME

      The bean name of the internally managed JPA annotation processor.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### AnnotationConfigUtils

          public AnnotationConfigUtils()

  - ### Method Detail

    - #### registerAnnotationConfigProcessors

          public static void registerAnnotationConfigProcessors(BeanDefinitionRegistry registry)

      Register all relevant annotation post processors in the given registry.
      Parameters:
        `registry` - the registry to operate on

    - #### registerAnnotationConfigProcessors

          public static Set<BeanDefinitionHolder> registerAnnotationConfigProcessors(BeanDefinitionRegistry registry,
                                                                                     Object source)

      Register all relevant annotation post processors in the given registry.
      Parameters:
        `registry` - the registry to operate on
        `source` - the configuration source element (already extracted) that this registration was triggered from. May be `null`.
      Returns:
        a Set of BeanDefinitionHolders, containing all bean definitions that have actually been registered by this call

    - #### processCommonDefinitionAnnotations

          public static void processCommonDefinitionAnnotations(AnnotatedBeanDefinition abd)