annotation

1.5之后java帶來了注解.注解一般通過配置@Target,@Retention,@Documented就可以創建自己的注解了.

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface A{

}

如何使用注解? 我們知道可以通過java的反射機制來獲取到注解以及注解內容.但是今天看源碼時候突然發現一個很有意思的使用方法.

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Import(B.class)
public @interface A{

}

@Configuration
public class B{
    class C{}

    @Bean
    public C enableC() {
        return new C();
    }
}

@Configuration
@ConditionalOnBean(B.C.class)
@Import({E.class,F.class})
public class D{

}

在spring中,

  • 創建一個注解,該注解注入了一個Bean C,
  • 如果用戶引用了該注解,則配置文件D中就會判斷是否已經存在C,
  • 如果存在則加載E,F配置.

這樣就相當于用戶引入一個annotation就完成了EF的配置信息加載.(感覺我們只需要引入一個annotation就增加了一些特性)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容