1. 程式人生 > >【註解篇-spring】

【註解篇-spring】

1、@Retention

說明:Reteniton的作用是定義被它所註解的註解保留多久,一共有三種策略。

  • SOURCE 
    被編譯器忽略

  • CLASS 
    註解將會被保留在Class檔案中,但在執行時並不會被VM保留。這是預設行為,所有沒有用Retention註解的註解,都會採用這種策略。

  • RUNTIME 
    保留至執行時。所以我們可以通過反射去獲取註解資訊。

例子:@Retention(java.lang.annotation.RetentionPolicy.RUNTIME)


2、@Target

說明:Target通過ElementType來指定註解可使用範圍的列舉集合

取值 註解使用範圍
METHOD 可用於方法上
TYPE 可用於類或者介面上
ANNOTATION_TYPE 可用於註解型別上(被@interface修飾的型別)
CONSTRUCTOR 可用於構造方法上
FIELD 可用於域上
LOCAL_VARIABLE 可用於區域性變數上
PACKAGE 用於記錄java檔案的package資訊
PARAMETER 可用於引數上

例子:@Target({ java.lang.annotation.ElementType.TYPE })


3、@Documented

說明:Documented 註解表明這個註解應該被 javadoc工具記錄. (預設情況下,javadoc是不包括註解的

例子:@Documented


4、@Configuration

說明:類似於xml檔案中@Beans

例子:

@Configuration

public class BookStoreDaoConfig{

    

@Bean public UserDao userDao(){ return new UserDaoImpl();}

     @Bean public BookDao bookDao(){return new BookDaoImpl();}

}


5、@Import

說明:@Import註解就是之前xml配置中的import標籤,可以用於依賴第三方包中bean的配置和載入,支援匯入普通的java類,並將其宣告成一個bean

例子:@Import(User.class)


6、@NoRepositoryBean:

說明:一般用作父類的repository,有這個註解,spring不會去例項化該repository。

例子:@NoRepositoryBean