@Retention(value=RUNTIME) @Target(value={}) public static @interface ComponentScan.Filter
| Modifier and Type | Optional Element and Description | 
|---|---|
| Class<?>[] | classesThe class or classes to use as the filter. | 
| String[] | patternThe pattern (or patterns) to use for the filter, as an alternative
 to specifying a Class  value(). | 
| FilterType | typeThe type of filter to use. | 
| Class<?>[] | valueAlias 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.