【註解篇-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 BookDao bookDao(){return new BookDaoImpl();}
}
5、@Import
說明:@Import註解就是之前xml配置中的import標籤,可以用於依賴第三方包中bean的配置和載入,支援匯入普通的java類,並將其宣告成一個bean
例子:@Import(User.class)
6、@NoRepositoryBean:
說明:一般用作父類的repository,有這個註解,spring不會去例項化該repository。
例子:@NoRepositoryBean