org.springframework.context.annotation

## Annotation Type ComponentScan.Filter

    @Retention(value=RUNTIME)
    @Target(value={})
    public static @interface ComponentScan.Filter

Declares the type filter to be used as an include filter or exclude filter.

### Required Element Summary

Required Elements
`Class<?>[]` `value` The class or classes to use as the filter.

### Optional Element Summary

Optional Elements
`FilterType` `type` The type of filter to use.

### Element Detail

#### value

    public abstract Class<?>[] value

The class or classes to use as the filter. In the case of `FilterType.ANNOTATION`, the class will be the annotation itself. In the case of `FilterType.ASSIGNABLE_TYPE`, the class will be the type that detected components should be assignable to. And in the case of `FilterType.CUSTOM`, the class will be an implementation of `TypeFilter`.

When multiple classes are specified, OR logic is applied, e.g. "include types annotated with `@Foo` OR `@Bar`".

Specifying zero classes is permitted but will have no effect on component scanning.

#### type

    public abstract FilterType type

The type of filter to use.

Note that the filter types available are limited to those that may be expressed as a `Class` in the `value()` attribute. This is in contrast to `<context:component-scan/>`, which allows for expression-based (i.e., string-based) filters such as AspectJ pointcuts. These filter types are intentionally not supported here, and not available in the `FilterType` enum.

See Also:
  `FilterType`

Default:
  org.springframework.context.annotation.FilterType.ANNOTATION