org.springframework.core.type.filter

## Class AnnotationTypeFilter

- java.lang.Object
- - org.springframework.core.type.filter.AbstractTypeHierarchyTraversingFilter
  - - org.springframework.core.type.filter.AnnotationTypeFilter

- All Implemented Interfaces:
    TypeFilter

      public class AnnotationTypeFilter
      extends AbstractTypeHierarchyTraversingFilter

  A simple filter which matches classes with a given annotation, checking inherited annotations as well.

  The matching logic mirrors that of `Class.isAnnotationPresent()`.

  Since:
    2.5
  Author:
    Mark Fisher, Ramnivas Laddad, Juergen Hoeller

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `AnnotationTypeFilter(Class<? extends Annotation> annotationType)` Create a new AnnotationTypeFilter for the given annotation type.
    `AnnotationTypeFilter(Class<? extends Annotation> annotationType, boolean considerMetaAnnotations)` Create a new AnnotationTypeFilter for the given annotation type.
    `AnnotationTypeFilter(Class<? extends Annotation> annotationType, boolean considerMetaAnnotations, boolean considerInterfaces)` Create a new `AnnotationTypeFilter` for the given annotation type.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected boolean` | `matchSelf(MetadataReader metadataReader)` Override this to match self characteristics alone.
    `protected Boolean` | `matchSuperClass(String superClassName)` Override this to match on super type name.

    - ### Methods inherited from class org.springframework.core.type.filter.AbstractTypeHierarchyTraversingFilter

      `match, matchClassName, matchInterface`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### AnnotationTypeFilter

          public AnnotationTypeFilter(Class<? extends Annotation> annotationType)

      Create a new AnnotationTypeFilter for the given annotation type. This filter will also match meta-annotations. To disable the meta-annotation matching, use the constructor that accepts a '`considerMetaAnnotations`' argument. The filter will not match interfaces.
      Parameters:
        `annotationType` - the annotation type to match

    - #### AnnotationTypeFilter

          public AnnotationTypeFilter(Class<? extends Annotation> annotationType,
                              boolean considerMetaAnnotations)

      Create a new AnnotationTypeFilter for the given annotation type. The filter will not match interfaces.
      Parameters:
        `annotationType` - the annotation type to match
        `considerMetaAnnotations` - whether to also match on meta-annotations

    - #### AnnotationTypeFilter

          public AnnotationTypeFilter(Class<? extends Annotation> annotationType,
                              boolean considerMetaAnnotations,
                              boolean considerInterfaces)

      Create a new `AnnotationTypeFilter` for the given annotation type.
      Parameters:
        `annotationType` - the annotation type to match
        `considerMetaAnnotations` - whether to also match on meta-annotations
        `considerInterfaces` - whether to also match interfaces

  - ### Method Detail

    - #### matchSelf

          protected boolean matchSelf(MetadataReader metadataReader)

      Description copied from class: `AbstractTypeHierarchyTraversingFilter`
      Override this to match self characteristics alone. Typically, the implementation will use a visitor to extract information to perform matching.
      Overrides:
        `matchSelf` in class `AbstractTypeHierarchyTraversingFilter`

    - #### matchSuperClass

          protected Boolean matchSuperClass(String superClassName)

      Description copied from class: `AbstractTypeHierarchyTraversingFilter`
      Override this to match on super type name.
      Overrides:
        `matchSuperClass` in class `AbstractTypeHierarchyTraversingFilter`