类 MetaAnnotationUtils.AnnotationDescriptor<T extends Annotation>

  • 类型参数:
    T - the annotation type
    直接已知子类:
    MetaAnnotationUtils.UntypedAnnotationDescriptor
    封闭类:
    MetaAnnotationUtils

    public static class MetaAnnotationUtils.AnnotationDescriptor<T extends Annotation>
    extends Object
    Descriptor for an Annotation, including the class on which the annotation is declared as well as the actual annotation instance.

    If the annotation is used as a meta-annotation, the descriptor also includes the composed annotation on which the annotation is present. In such cases, the root declaring class is not directly annotated with the annotation but rather indirectly via the composed annotation.

    Given the following example, if we are searching for the @Transactional annotation on the TransactionalTests class, then the properties of the AnnotationDescriptor would be as follows.

    • rootDeclaringClass: TransactionalTests class object
    • declaringClass: TransactionalTests class object
    • composedAnnotation: null
    • annotation: instance of the Transactional annotation

     @Transactional
     @ContextConfiguration({"/test-datasource.xml", "/repository-config.xml"})
     public class TransactionalTests { }
     

    Given the following example, if we are searching for the @Transactional annotation on the UserRepositoryTests class, then the properties of the AnnotationDescriptor would be as follows.

    • rootDeclaringClass: UserRepositoryTests class object
    • declaringClass: RepositoryTests class object
    • composedAnnotation: instance of the RepositoryTests annotation
    • annotation: instance of the Transactional annotation

     @Transactional
     @ContextConfiguration({"/test-datasource.xml", "/repository-config.xml"})
     @Retention(RetentionPolicy.RUNTIME)
     public @interface RepositoryTests { }
    
     @RepositoryTests
     public class UserRepositoryTests { }