注释类型 AliasFor


  • @Retention(RUNTIME)
    @Target(METHOD)
    @Documented
    public @interface AliasFor
    AliasFor是用于声明批注属性别名的批注。

    使用场景
    注释中的显式别名:在单个注释中,@AliasFor 可以在一对属性上声明,以表明它们是彼此可互换的别名。
    元注释中属性的显式别名:如果 的属性设置为与声明它的属性 @AliasFor 不同的注释,则 annotation 被attribute解释为元注释中属性的别名(即显式元注释属性覆盖)。 这样可以对在注释层次结构中覆盖的确切属性进行精细控制。事实上,@AliasFor 甚至可以为元注释的属性声明value别名。
    注释中的隐式别名:如果注释中的一个或多个属性被声明为同一元注释属性的属性覆盖(直接或传递),则这些属性将被视为彼此的一组隐式别名,从而导致类似于注释中显式别名的行为。

    使用要求
    批注中的显式别名:

    • 组成别名对的每个属性都应使用 @AliasFor 注释,并且 value必须引用另一个属性
    • 别名属性必须声明相同的返回类型
    • 别名属性必须声明默认值
    • annotation()不应声明

    示例:

     @Target(ElementType.METHOD)
     @Retention(RetentionPolicy.RUNTIME)
     @Documented
     @RequestMapping(method = HttpMethod.GET)
     public @interface GetMapping {
    
         @AliasFor(annotation = RequestMapping.class)
         PathPatterns patterns() default PathPatterns.PATH;
    
         @AliasFor(annotation = RequestMapping.class)
         String[] value() default {};
    
         @AliasFor(annotation = RequestMapping.class)
         String[] path() default {};
    
         @AliasFor(annotation = RequestMapping.class)
         String[] consumes() default {};
    
         @AliasFor(annotation = RequestMapping.class)
         String[] produces() default {};
     }
     
    • 可选元素概要

      可选元素 
      修饰符和类型 可选元素 说明
      Class<? extends Annotation> annotation
      映射注解
      String value
      映射指定注解的别名,如果为空则为当前名称
    • 元素详细资料

      • value

        String value
        映射指定注解的别名,如果为空则为当前名称
        默认值:
        ""
      • annotation

        Class<? extends Annotation> annotation
        映射注解
        默认值:
        java.lang.annotation.Annotation.class