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.

- - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `String[]` | `pattern` The String 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` The class or classes to use as the filter.

- - ### Element Detail

    - #### type

          public abstract FilterType type

      The type of filter to use. Default is `FilterType.ANNOTATION`.
      Default:
        org.springframework.context.annotation.FilterType.ANNOTATION

  - - #### 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.

      Default:
        {}

  - - #### pattern

          public abstract String[] pattern

      The String pattern (or patterns) to use for the filter, as an alternative to specifying a Class `value()`. In the case of `FilterType.ASPECTJ`, this is an AspectJ type pattern expression; in case of `FilterType.REGEX`, a regex pattern for the fully-qualified class names to match.
      Default:
        {}