注解:
注解本身沒有意義狭莱,單獨(dú)注解就是一種注釋,需要結(jié)合別的技術(shù)一起使用才有意義概作。
Java注解(Annotation)又稱 Java標(biāo)注腋妙,是 JDK5.0引入的一種注釋機(jī)制。注解是元數(shù)據(jù)的一種形式讯榕,提供有關(guān)于程序但不屬于程序本身的數(shù)據(jù)骤素。注解對它們注解的代碼的操作沒有直接影響匙睹。
與聲明一個(gè)"Class"不同的是,注解的聲明使用@interface關(guān)鍵字济竹。
元注解:
在定義注解時(shí)垃僚,注解類也能夠使用其他的注解聲明。
對注解類型進(jìn)行注解的注解類规辱,我們稱之為 meta-annotation(元注解)
Target.png
@Retention的作用
SOURECE:源碼級注解谆棺,可提供給IDE語法檢查,APT等場景使用
CLSS:編譯時(shí)注解罕袋,保留到class文件改淑,常用語字節(jié)碼操作【修改class文件】
RUNTIME:運(yùn)行時(shí)注解,能在運(yùn)行期間結(jié)合反射技術(shù)獲取注解中的所有信息
Retention.png
不同Retention的作用.png
APT:
全稱為:"Anotation Processor Tools"浴讯,意為注解處理器朵夏,用于處理注解。編寫好的Java源文件榆纽,需要經(jīng)過 javac 的編譯仰猖,翻譯為虛擬機(jī)能夠加載解析的字節(jié)碼Class文件。注解處理器是 javac自帶的一個(gè)工具奈籽,用來在編譯時(shí)期掃描處理注解信息饥侵。你可以為某些注解注冊自己的注解處理器。注冊的注解處理器由 javac 調(diào)起衣屏,并將注解信息傳遞給注解處理器進(jìn)行處理躏升。