@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
:
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.