注解(Annotation)

注解(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应用程序的交互中持续存在。