EJB的部署人員無(wú)法了解EJB本身的信息,假如EJB組件的創(chuàng)建者用注釋(Annotation)的方法將這些配置服務(wù)的信息和代碼放在一起,這樣EJB的部署者就可以了解EJB的信息,EJB的home接口可以使用Annotation自動(dòng)生成,當(dāng)然到目前為止更好的是在簡(jiǎn)單的java Object上使用Annotations。
一 什么是Annotation
在已經(jīng)發(fā)布的JDK1.5(tiger)中增加新的特色叫 Annotation。Annotation提供一種機(jī)制,將程序的元素如:類,方法,屬性,參數(shù),本地變量,包和元數(shù)據(jù)聯(lián)系起來(lái)。這樣編譯器可以將元數(shù)據(jù)存儲(chǔ)在Class文件中。這樣虛擬機(jī)和其它對(duì)象可以根據(jù)這些元數(shù)據(jù)來(lái)決定如何使用這些程序元素或改變它們的行為。
二 定義一個(gè)簡(jiǎn)單的Annotation并使用它
1.定義Annotation
定義一個(gè)Annotation是什么簡(jiǎn)單的,它采取的是類似于Interface的定義方式: “@+annotation類型名稱+(..逗號(hào)分割的name-value對(duì)...)”
//Example 1@Retention這個(gè)meta-annotation表示我們創(chuàng)建的SimpleAnnotation這個(gè)Annotation將會(huì)存儲(chǔ)在Class文件中,并在java
VM運(yùn)行時(shí)加載它。@Target這個(gè)meta-annotation表示我們創(chuàng)建的SimplwAnnotation將會(huì)為描述方法,而@interface SimpleAnnotation是我們自定義的Annotation,它有一個(gè)成員叫value,返回值是String。
2.使用Annotation
//Example 2一個(gè)Annotation用于程序元素(在本例中是method),在method方法之前用(@Annotation名稱(name=value,name=value.....)。在本例中是@SimpleAnnotation(value="Pass:This method will Pass")。每個(gè)annotation具有一個(gè)名字和成員個(gè)數(shù)>=0,當(dāng)只有一個(gè)單一的成員時(shí),這個(gè)成員就是value。我們也可以這樣寫 @SimpleAnnotation("Fail:This method will Fail")。至此@SimpleAnnotation將Pass和Fail聯(lián)系起來(lái)了。
3.在運(yùn)行時(shí)訪問(wèn)Annotation
一旦Annotation與程序元素聯(lián)系起來(lái),我們可以通過(guò)反射訪問(wèn)它們并可以取得它們的值。我們使用一個(gè)新的interface:java.lang.reflect.AnnotatedElement。java.lang.reflect.AnnotatedElement接口中的方法有:
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注