Springコンビネーションコメント&コメント引き継ぎ

2451 ワード

コンビネーションコメント
注釈された注釈を組み合わせ注釈といいます.
1.メリット
 
  • 注釈配置を簡単にして、特定の意味の複数の注釈を少ない注釈で表示する
  • 必要に応じて柔軟にカスタマイズできる拡張機能を提供しています.
  • 2どう使いますか
    (1)グループのコメントをカスタマイズする
    
    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @Configuration//       bean  
    @ComponentScan//      value(package  )      bean
    public
    @interface  WiselyConfiguration {
        String[] value() default{};//    ,   @ComponentScan        ,          
    }

    (2)

    
    //@Configuration //    
    //@ComponentScan("com.gdb.spingboot.service")  //     bean  
    @WiselyConfiguration(value = "com.gdb.spingboot.service") //      ,      bean   value         
    public class  ElConfig {}

    , , , 。

    @Inhberited , 。

    
    @Retention(RetentionPolicy.RUNTIME)
    @Inherited
    public @interface Hello {
    }
    public class AnnotationTest3 {
        //       @Inherited      @Hello
        @Hello
        class Base{}
        //         @Hello
        class Derived extends Base {}
        public static void main(String[] args) {
        //          @Hello  。
            if( Derived.class.isAnnotationPresent(Hello.class)){
            Hello  hello = (Hello)Derived.class.getAnnotation(Hello.class);
            System.out.println("Hello");
            }
        }
    }

    (1) , {} , 。

    (2) 。

    (3) 。

    (4) value, value value=xxx, 。

    (5) default 。

    
    //    
    @Retention(RetentionPolicy.RUNTIME)
    public @interface SomeFuture {
    String value();//     
    int[]  arrayValue(); //  
    Hello  helloValue();//       @Hello
    Hello[] helloArrayValue() default {@Hello,@Hello}; //     ,       。
    }
    
    //    
    @SomeFuture(
    value="hello", //    
    arrayValue={1,2,3},//    
    helloValue=@Hello,//         
    helloArrayValue={@Hello,@Hello,@Hello}//            。
    )
    public class AnnotationTest4 {
    }

     

    :1024s​​​​​​​