## Package 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.

See:
Description

Interface Summary
ScopeMetadataResolver: Strategy interface for resolving the scope of bean definitions.

Class Summary
AnnotatedBeanDefinitionReader: Convenient adapter for programmatic registration of annotated bean classes.
AnnotationBeanNameGenerator: `BeanNameGenerator` implementation for bean classes annotated with the `@Component` annotation or with another annotation that is itself annotated with `@Component` as a meta-annotation.
AnnotationConfigApplicationContext: Standalone application context, accepting annotated classes as input - in particular `@Configuration`-annotated classes, but also plain `@Components` and JSR-330 compliant classes using javax.inject annotations.
AnnotationConfigBeanDefinitionParser: Parser for the <context:annotation-config/> element.
AnnotationConfigUtils: Utility class that allows for convenient registration of common `BeanPostProcessor` and `BeanFactoryPostProcessor` definitions for annotation-based configuration.
AnnotationScopeMetadataResolver: A `ScopeMetadataResolver` implementation that by default checks for the presence of Spring's `Scope` annotation on the bean class.
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 scans the classpath from a base package.
CommonAnnotationBeanPostProcessor: `BeanPostProcessor` implementation that supports common Java annotations out of the box, in particular the JSR-250 annotations in the `javax.annotation` package.
ComponentScanBeanDefinitionParser: Parser for the <context:component-scan/> element.
ConfigurationClassPostProcessor: `BeanFactoryPostProcessor` used for bootstrapping processing of `@Configuration` classes.
Jsr330ScopeMetadataResolver: Simple `ScopeMetadataResolver` implementation that follows JSR-330 scoping rules: defaulting to prototype scope unless `Singleton` is present.
ScannedGenericBeanDefinition: Extension of the `GenericBeanDefinition` class, based on an ASM ClassReader, with support for annotation metadata exposed through the `AnnotatedBeanDefinition` interface.
ScopeMetadata: Describes scope characteristics for a Spring-managed bean including the scope name and the scoped-proxy behavior.

Enum Summary
FilterType: Enumeration of the valid type filters to be added for annotation-driven configuration.
ScopedProxyMode: Enumerates the various scoped-proxy options.

Annotation Types Summary
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.
DependsOn: Beans on which the current bean depends.
Import: Indicates one or more `Configuration` classes to import.
ImportResource: Indicates one or more resources containing bean definitions to import.
Lazy: Indicates whether a bean is to be lazily initialized.
Primary: Indicates that a bean should be given preference when multiple candidates are qualified to autowire a single-valued dependency.
Scope: When used as a type-level annotation in conjunction with the `Component` annotation, indicates the name of a scope to use for instances of the annotated type.

## Package org.springframework.context.annotation Description

Annotation support for the Application Context, including JSR-250 "common" annotations, component-scanning, and Java-based metadata for creating Spring-managed objects.