@Retention(value=RUNTIME) @Target(value={}) public static @interface ComponentScan.Filter
| Modifier and Type | Optional Element and Description |
|---|---|
Class<?>[] |
classes
The class or classes to use as the filter.
|
String[] |
pattern
The pattern (or patterns) to use for the filter, as an alternative
to specifying a Class
value(). |
FilterType |
type
The type of filter to use.
|
Class<?>[] |
value
Alias for
classes(). |
public abstract FilterType type
Default is FilterType.ANNOTATION.
@AliasFor(value="value") public abstract Class<?>[] classes
The following table explains how the classes will be interpreted
based on the configured value of the type() attribute.
FilterType | Class Interpreted As |
|---|---|
ANNOTATION |
the annotation itself |
ASSIGNABLE_TYPE |
the type that detected components should be assignable to |
CUSTOM |
an implementation of TypeFilter |
When multiple classes are specified, OR logic is applied
— for example, "include types annotated with @Foo OR @Bar".
Custom TypeFilters may optionally implement any of the
following Aware interfaces, and
their respective methods will be called prior to match:
EnvironmentAwareBeanFactoryAware
BeanClassLoaderAware
ResourceLoaderAware
Specifying zero classes is permitted but will have no effect on component scanning.
public abstract String[] pattern
value().
If type() is set to ASPECTJ,
this is an AspectJ type pattern expression. If type() is
set to REGEX, this is a regex pattern
for the fully-qualified class names to match.