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
    Modifier and Type | Required Element and Description
    --- | ---
    `Class<?>[]` | `value` The class or classes to use as the filter.

  - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `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