註解(Annotation)很重要,將來的開發模式都是基於註解的,JPA是基於註解的,Spring2.5以上都是基於註解的,Hibernate3.x之後也是基於註解的,如今的Struts2有一部分也是基於註解的了,註解是一種趨勢,如今已經有很多的人開始用註解了,註解是JDK1.5以後纔有的新特性java
JDK1.5以後內部提供的三個註解ide
@Deprecated 意思是「廢棄的,過期的」工具
@Override 意思是「重寫、覆蓋」開發工具
@SuppressWarnings 意思是「壓縮警告」this
註解(Annotation)至關於一種標記,在程序中加入註解就等於爲程序打上某種標記,沒有加,則等於沒有任何標記,之後,javac編譯器、開發工具和其餘程序能夠經過反射來了解你的類及各類元素上有無何種標記,看你的程序有什麼標記,就去幹相應的事,標記能夠加在包、類,屬性、方法,方法的參數以及局部變量上。spa
如在javaEE提供的tutorial中的hello1中的Hello.java代碼寫到:code
1 package javaeetutorial.hello1; 2 3 import javax.enterprise.context.RequestScoped; 4 import javax.inject.Named; 5 6 @Named 7 @RequestScoped 8 public class Hello { 9 10 private String name; 11 12 public Hello() { 13 } 14 15 public String getName() { 16 return name; 17 } 18 19 public void setName(String user_name) { 20 this.name = user_name; 21 } 22 }
在Hello
類,稱爲管理bean類,提供了getter和setter方法name
中的Facelets頁面表達式中使用屬性。默認狀況下,表達式語言引用類名,第一個字母爲小寫(hello.name
)。blog
若是使用bean類的默認名稱,則能夠指定@Model
爲註釋,而沒必要同時指定@Named
和 @RequestScoped
。該@Model
註釋被稱爲刻板印象,對於封裝等註解註釋的術語。開發
在Hello.java
類中,註釋javax.inject.Named
並 javax.enterprise.context.RequestScoped
使用請求範圍將類標識爲託管bean。範圍定義應用程序數據如何保持和共享。get
JavaServer Faces應用程序中最經常使用的範圍以下:
Request(@RequestScoped
):請求範圍在Web應用程序中的單個HTTP請求期間保持不變。在相似的應用程序hello1
中,應用程序由單個請求和響應組成,bean使用請求範圍。
Session(@SessionScoped
):會話範圍在Web應用程序中的多個HTTP請求中保持不變。當應用程序由須要維護數據的多個請求和響應組成時,bean使用會話範圍。
Application(@ApplicationScoped
):應用程序範圍在全部用戶與Web應用程序的交互中持續存在。