一.介绍:java
Annotation的中文名字叫注解,开始与JDK 1.5,为了加强xml元数据和代码的耦合性的产物。注解自己并无业务逻辑处理,仅仅是一个声明,具体的处理须要交由使用这些注解的工具类或方法,原则上来讲,注解应该是对代码书写的一个辅助,即注解是否存在均不能影响代码的正常运行。如今java中使用注解的场景是愈来愈多,如orm框架,Ioc框架等,开发人员使用注解的方式能够简化对于元数据的维护和构建(xml配置数据),框架
Annotation实际上是代码里的特殊标记,这些标记能够在编译、类加载、运行时被读取,并执行相应的处理。经过使用Annotation,程序开发人员能够在不改变原有逻辑的状况下,在源文件嵌入一些补充信息。代码分析工具、开发工具和部署工具能够经过这些补充信息进行验证或者进行部署。ide
Annotation提供了一条为程序元素设置元数据的方法,从某些方面来看,Annotation就像修饰符同样被使用,可用于修饰包、类、构造器、方法、成员变量、参数、局部变量的声明,这些信息被存储在Annotation的“name=value”对中。函数
Annotation能被用来为程序元素(类、方法、成员变量等)设置元数据。值得指出的是:Annotation不能影响程序代码的执行,不管增长、删除Annotation,代码都始终如一地执行。若是但愿让程序中的Annotation能在运行时起必定的做用,只有经过某种配套的工具对Annotation中的信息进行访问的处理,访问和处理Annotation的工具统称APT(Annotation Processing Tool)。工具
二.分类:开发工具
标准 Annotationspa
包括 Override, Deprecated, SuppressWarnings,标准 Annotation 是指 Java 自带的几个 Annotation,上面三个分别表示重写函数,不鼓励使用(有更好方式、使用有风险或已不在维护),忽略某项 Warningorm
元 Annotation
@Retention, @Target, @Inherited, @Documented,元 Annotation 是指用来定义 Annotation 的 Annotation,在后面 Annotation 自定义部分会详细介绍含义xml
自定义 Annotation
自定义 Annotation 表示本身根据须要定义的 Annotation,定义时须要用到上面的元 Annotation
这里只是一种分类而已,也能够根据做用域分为源码时、编译时、运行时 Annotation,后面在自定义 Annotation 时会具体介绍接口
3、Named、RequstScoped、Model注解:
@RequestScoped:
在Web应用程序中的单个HTTP请求期间,请求范围仍然存在。应用程序由单个请求和响应组成,bean使用请求范围。
@Named:
该注解能够用来处理单接口与多个实现类的注入。@Named注解做用于成员变量或者方法参数,能够经过此标注的参数来区分不一样的实现类。
@model:
@Model注解称为构造型,是用于封装其余注释的注释的术语。