@Configuration
classes.
Provides support comparable to Spring's <context:component-scan>
XML namespace element.
Either basePackageClasses or basePackages (or its alias
value) may be specified to define specific packages to scan. If specific
packages are not defined, scanning will occur recursively beginning with the
package of the class that declares this annotation.
Note that the <context:component-scan> element has an
annotation-config attribute; however, this annotation does not. This is because
in almost all cases when using @ComponentScan, default annotation config
processing (e.g. processing @Autowired and friends) is assumed. Furthermore,
when using AnnotationConfigApplicationContext, annotation config processors are
always registered, meaning that any attempt to disable them at the
@ComponentScan level would be ignored.
See @Configuration's Javadoc for usage examples.
@ComponentScan can be used as a repeatable
annotation. @ComponentScan may also be used as a meta-annotation
to create custom composed annotations with attribute overrides.
Locally declared @ComponentScan annotations always take precedence
over and effectively hide @ComponentScan meta-annotations,
which allows explicit local configuration to override configuration that is
meta-present (including composed annotations meta-annotated with
@ComponentScan).
Configuration
| Modifier and Type | Class and Description |
|---|---|
| public static @interface | ComponentScan.
Declares the type filter to be used as an include filter or exclude filter. |
| Modifier and Type | Method and Description |
|---|---|
| public Class | basePackageClasses()
Type-safe alternative to |
| public String[] | |
| public ComponentScan. | |
| public ComponentScan. | |
| public boolean | |
| public Class | nameGenerator()
The |
| public String | |
| public ScopedProxyMode | scopedProxy()
Indicates whether proxies should be generated for detected components, which may be necessary when using scopes in a proxy-style fashion. |
| public Class | |
| public boolean | useDefaultFilters()
Indicates whether automatic detection of classes annotated with |
| public String[] |
| basePackageClasses | back to summary |
|---|---|
| public Class Type-safe alternative to Consider creating a special no-op marker class or interface in each package that serves no purpose other than being referenced by this attribute. | |
| basePackages | back to summary |
|---|---|
| public String[] basePackages() Base packages to scan for annotated components.
Use
| |
| excludeFilters | back to summary |
|---|---|
| public ComponentScan. Specifies which types are not eligible for component scanning.
| |
| includeFilters | back to summary |
|---|---|
| public ComponentScan. Specifies which types are eligible for component scanning. Further narrows the set of candidate components from everything in Note that these filters will be applied in addition to the default filters, if specified.
Any type under the specified base packages which matches a given filter will be included,
even if it does not match the default filters (i.e. is not annotated with
| |
| lazyInit | back to summary |
|---|---|
| public boolean lazyInit() Specify whether scanned beans should be registered for lazy initialization. Default is
| |
| nameGenerator | back to summary |
|---|---|
| public Class The The default value of the | |
| resourcePattern | back to summary |
|---|---|
| public String resourcePattern() Controls the class files eligible for component detection. Consider use of | |
| scopedProxy | back to summary |
|---|---|
| public ScopedProxyMode scopedProxy() Indicates whether proxies should be generated for detected components, which may be necessary when using scopes in a proxy-style fashion. The default is defer to the default behavior of the component scanner used to execute the actual scan. Note that setting this attribute overrides any value set for | |
| scopeResolver | back to summary |
|---|---|
| public Class The | |
| useDefaultFilters | back to summary |
|---|---|
| public boolean useDefaultFilters() Indicates whether automatic detection of classes annotated with | |
| value | back to summary |
|---|---|
| public String[] value() Alias for Allows for more concise annotation declarations if no other attributes
are needed — for example,
| |
| Modifier and Type | Method and Description |
|---|---|
| public Class | |
| public String[] | |
| public FilterType | |
| public Class |
| classes | back to summary | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| public Class The class or classes to use as the filter. The following table explains how the classes will be interpreted
based on the configured value of the
When multiple classes are specified, OR logic is applied
— for example, "include types annotated with Custom Specifying zero classes is permitted but will have no effect on component scanning. | |||||||||
| pattern | back to summary |
|---|---|
| public String[] pattern() The pattern (or patterns) to use for the filter, as an alternative
to specifying a Class If | |
| type | back to summary |
|---|---|
| public FilterType type() The type of filter to use. Default is | |
| value | back to summary |
|---|---|
| public Class Alias for | |