資源描述:
《java注解指導(dǎo)手冊(cè)–終極向?qū)?java開發(fā)java經(jīng)驗(yàn)技巧》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、Java注解指導(dǎo)手冊(cè)-終極向?qū)?編程開發(fā)技術(shù)Java注解指導(dǎo)手冊(cè)-終極向?qū)ёg文出處:ToienLiu原文出處:DaniBuiza編者的話:注解是java的一個(gè)主要特性且每個(gè)java開發(fā)者都應(yīng)該知道如何使用它。我們已經(jīng)在Java?Code?Geeks提供了豐富的教程,?如CreatingYourOwnJavaAnnotations,?JavaAnnotationsTutorialwithCustomAnnotation?和?Java?Annotations:?Explored?&?Explained.我
2、們也有些文章是關(guān)于注解在不同類庫中的應(yīng)用,包括?Makc?your?Spring?Sccurity?@Sccurcd?annotations?morc?DRY和?Java?Annotations?&?A?Real?World?Spring?Example?現(xiàn)在,是時(shí)候匯總這些和注解相關(guān)的信息到一篇文章了,祝大家閱讀愉快。H錄1.什么是注解2.介紹3.消費(fèi)器4.注解語法和注解元索5.在什么地方使用6.使用案例7.內(nèi)建注解&Java8與注解9.自定義注解10.提取注解11.注解集成12.使用注解的知名類庫
3、13.小結(jié)14.下載15.資料在這篇文章中我們將闡述什么是J3V3注解,它們?nèi)绾喂ぷ?,怎么使用它們。我們將揭開Java注解的面紗,包括內(nèi)建注解或稱元注解,還將討論Java8屮與Z相關(guān)的的新特性。最后,我們將實(shí)現(xiàn)自定義的注解,編寫一個(gè)使用注解的處理程序(消費(fèi)器),它通過java反射使用注解。我們還會(huì)列岀一些基于注解,知名H被廣泛應(yīng)用的第三方類庫如:Jimit,JAXB,Spring,Ilibernate。在文章的最后,會(huì)有一個(gè)壓縮文件包含了文章中的所有示例,實(shí)現(xiàn)這些例了使用的軟件版本如下所示:?Ecli
4、pseLuna4.4?JREUpdate8.20?Junit4?Hibernate4.3.6?FindBugs3.0.01?什么是注解?注解早在J2SE1.5就被引入到Java屮,主要提供一種機(jī)制,這種機(jī)制允許程序員在編寫代碼的同時(shí)可以直接編寫元數(shù)據(jù)。在引入注解Z前,程序員們描述其代碼的形式尚未標(biāo)準(zhǔn)化,每個(gè)人的做法各異:transient關(guān)鍵字、注釋、接口等。這顯然不是一種優(yōu)雅的方式,隨之/而來的一種嶄新的記錄元數(shù)據(jù)的形式——注解被引入到Java中。其它因索也促成了這個(gè)決定:當(dāng)吋不同類型的應(yīng)用程序使用
5、XML作為標(biāo)準(zhǔn)的代碼配置機(jī)制,這其實(shí)并不是最佳方式,因?yàn)榇a和XML的解耦以及未來對(duì)這種解耦應(yīng)用的維護(hù)并不低廉。另外,由于非保留字的使用,例如“?deprecated”自從Javal.4便開始在Java文檔中使用。我非常確定這是一個(gè)現(xiàn)在在注解中使用原因。包含注解的設(shè)計(jì)和開發(fā)的Java規(guī)范主要有以下兩篇:?JSR175AmetadatafacilityfortheJavaprogrammingLanguage?JSR250CommonAnnotationsfortheJavaPlatform2.介紹解釋
6、何為注解的最佳方式就是元數(shù)據(jù)這個(gè)詞:描述數(shù)據(jù)自身的數(shù)據(jù)。注解就是代碼的元數(shù)據(jù),他們包含了代碼自身的信息。注解可以被用在包,類,方法,變量,參數(shù)上。flJava8起,有一種注解幾乎可以被放在代碼的任何位置,叫做類型注解。我們將會(huì)在后而談到具體用法。被注解的代碼并不會(huì)直接被注解影響。這只會(huì)向第三系統(tǒng)捉供關(guān)于自己的信息以用于不同的需求。注解會(huì)被編譯至class文件中,而且會(huì)在運(yùn)行時(shí)被處理程序提取出來用于業(yè)務(wù)邏輯。當(dāng)然,創(chuàng)建在運(yùn)行時(shí)不可用的注解也是可能的,甚至可以創(chuàng)建只在源文件中可用,在編譯時(shí)不可用的注解。3
7、?消費(fèi)器理解注解的目的以及如何使用它都會(huì)帯來困難,因?yàn)樽⒔獗旧聿⒉话魏喂δ苓壿?,它們也不?huì)影響自己注解的代碼,那么,它們到底為什么而存在呢?這個(gè)問題的解釋就是我所稱的注解消費(fèi)器。它們是利用被注解代碼并根據(jù)注解信息產(chǎn)生不同行為的系統(tǒng)或者應(yīng)用程序。例如,在Javat帶的內(nèi)建注解(元注解)屮,消費(fèi)器是執(zhí)行被注解代碼的JVM。還有其他稍后談到的其他例子,例如JUnit,消費(fèi)器是讀取,分析被注解代碼的JUnit處理程序,它還可以決定測(cè)試單元和方法執(zhí)行順序。我們會(huì)在JUnit章節(jié)更深入。消費(fèi)器使用Java中的
8、反射機(jī)制來讀取和分析被注解的源代碼。使用的主要的包冇:java,lang,java.lang,reflecto我們將會(huì)在本篇指南屮介紹如何用反射從頭開始創(chuàng)建一個(gè)自定義的消費(fèi)器。4.注解語法和元素聲明一個(gè)注解需要使用“幘作為前綴,這便向編譯器說明,該元素為注解。例如:?AnnotationpublicvoidannotatedMehod(){上述的注解名稱為Annotation,它止在注解annotatedMethod方法。編譯器會(huì)處理它。注解可以以鍵值對(duì)