# 程序包的使用
org.springframework.context.annotation

- 使用org.springframework.context.annotation的程序包
  程序包 | 说明
  --- | ---
  org.springframework.cache.annotation | Annotations and supporting classes for declarative cache management.
  org.springframework.context.annotation | Annotation support for the Application Context, including JSR-250 "common" annotations, component-scanning, and Java-based metadata for creating Spring-managed objects.
  org.springframework.scheduling.annotation | Java 5 annotation for asynchronous method execution.

- org.springframework.cache.annotation使用的org.springframework.context.annotation中的类
  类和说明
  AdviceMode Enumeration used to determine whether JDK proxy-based or AspectJ weaving-based advice should be applied.
  AdviceModeImportSelector Convenient base class for `ImportSelector` implementations that select imports based on an `AdviceMode` value from an annotation (such as the `@Enable*` annotations).
  Bean Indicates that a method produces a bean to be managed by the Spring container.
  Configuration Indicates that a class declares one or more `@Bean` methods and may be processed by the Spring container to generate bean definitions and service requests for those beans at runtime, for example:
       @Configuration
       public class AppConfig {

           @Bean
           public MyBean myBean() {
               // instantiate, configure and return bean ...
           }
       }

       Bootstrapping @Configuration classes

       Via AnnotationConfigApplicationContext

       @Configuration classes are typically bootstrapped using either
       AnnotationConfigApplicationContext or its web-capable variant,
       AnnotationConfigWebApplicationContext.
  Import Indicates one or more `@Configuration` classes to import.
  ImportAware Interface to be implemented by any @`Configuration` class that wishes to be injected with the `AnnotationMetadata` of the @`Configuration` class that imported it.
  ImportSelector Interface to be implemented by types that determine which @`Configuration` class(es) should be imported based on a given selection criteria, usually one or more annotation attributes.
  Role Indicates the 'role' hint for a given bean.

- org.springframework.context.annotation使用的org.springframework.context.annotation中的类
  类和说明
  AdviceMode Enumeration used to determine whether JDK proxy-based or AspectJ weaving-based advice should be applied.
  AnnotationConfigRegistry Common interface for annotation config application contexts, defining `AnnotationConfigRegistry.register(java.lang.Class<?>...)` and `AnnotationConfigRegistry.scan(java.lang.String...)` methods.
  Bean Indicates that a method produces a bean to be managed by the Spring container.
  ClassPathBeanDefinitionScanner A bean definition scanner that detects bean candidates on the classpath, registering corresponding bean definitions with a given registry (`BeanFactory` or `ApplicationContext`).
  ClassPathScanningCandidateComponentProvider A component provider that provides candidate components from a base package.
  CommonAnnotationBeanPostProcessor.LookupElement Class representing generic injection information about an annotated field or setter method, supporting @Resource and related annotations.
  Condition A single `condition` that must be matched in order for a component to be registered.
  Conditional Indicates that a component is only eligible for registration when all specified conditions match.
  ConditionContext Context information for use by `Condition`s.
  Configuration Indicates that a class declares one or more `@Bean` methods and may be processed by the Spring container to generate bean definitions and service requests for those beans at runtime, for example:
       @Configuration
       public class AppConfig {

           @Bean
           public MyBean myBean() {
               // instantiate, configure and return bean ...
           }
       }

       Bootstrapping @Configuration classes

       Via AnnotationConfigApplicationContext

       @Configuration classes are typically bootstrapped using either
       AnnotationConfigApplicationContext or its web-capable variant,
       AnnotationConfigWebApplicationContext.
  ConfigurationCondition.ConfigurationPhase The various configuration phases where the condition could be evaluated.
  DeferredImportSelector A variation of `ImportSelector` that runs after all `@Configuration` beans have been processed.
  DeferredImportSelector.Group Interface used to group results from different import selectors.
  DeferredImportSelector.Group.Entry An entry that holds the `AnnotationMetadata` of the importing `Configuration` class and the class name to import.
  EnableLoadTimeWeaving.AspectJWeaving
  FilterType Enumeration of the type filters that may be used in conjunction with `@ComponentScan`.
  Import Indicates one or more `@Configuration` classes to import.
  ImportAware Interface to be implemented by any @`Configuration` class that wishes to be injected with the `AnnotationMetadata` of the @`Configuration` class that imported it.
  ImportBeanDefinitionRegistrar Interface to be implemented by types that register additional bean definitions when processing @`Configuration` classes.
  ImportSelector Interface to be implemented by types that determine which @`Configuration` class(es) should be imported based on a given selection criteria, usually one or more annotation attributes.
  LoadTimeWeavingConfigurer Interface to be implemented by `@Configuration` classes annotated with `@EnableLoadTimeWeaving` that wish to customize the `LoadTimeWeaver` instance to be used.
  MBeanExportConfiguration.SpecificPlatform
  Role Indicates the 'role' hint for a given bean.
  ScopedProxyMode Enumerates the various scoped-proxy options.
  ScopeMetadata Describes scope characteristics for a Spring-managed bean including the scope name and the scoped-proxy behavior.
  ScopeMetadataResolver Strategy interface for resolving the scope of bean definitions.

- org.springframework.scheduling.annotation使用的org.springframework.context.annotation中的类
  类和说明
  AdviceMode Enumeration used to determine whether JDK proxy-based or AspectJ weaving-based advice should be applied.
  AdviceModeImportSelector Convenient base class for `ImportSelector` implementations that select imports based on an `AdviceMode` value from an annotation (such as the `@Enable*` annotations).
  Bean Indicates that a method produces a bean to be managed by the Spring container.
  Configuration Indicates that a class declares one or more `@Bean` methods and may be processed by the Spring container to generate bean definitions and service requests for those beans at runtime, for example:
       @Configuration
       public class AppConfig {

           @Bean
           public MyBean myBean() {
               // instantiate, configure and return bean ...
           }
       }

       Bootstrapping @Configuration classes

       Via AnnotationConfigApplicationContext

       @Configuration classes are typically bootstrapped using either
       AnnotationConfigApplicationContext or its web-capable variant,
       AnnotationConfigWebApplicationContext.
  Import Indicates one or more `@Configuration` classes to import.
  ImportAware Interface to be implemented by any @`Configuration` class that wishes to be injected with the `AnnotationMetadata` of the @`Configuration` class that imported it.
  ImportSelector Interface to be implemented by types that determine which @`Configuration` class(es) should be imported based on a given selection criteria, usually one or more annotation attributes.
  Role Indicates the 'role' hint for a given bean.