Java注解
Java注解其实是代码里的特殊标记,使用其他工具可以对其进行处理。注解是一种元数据,起到了描述、配置的作用,生成文档,所有的注解都隐式地扩展自java.lang.annotation.Annotation。注解可能使用注解来自动生成附属文件,如部署描述符和Bean信息类,还可以用于自动生成测试、日志、事务语义等代码。可以注解方法、类、成员、局部变量等。
注解语法
注解是由注解接口来定义的,注解的定义很像接口的定义,与其他Java接口一样,注解也将会编译成class文件.在注解中,一般都会包含一些元素以表示某些值,注解的元素看起来就像接口中的方法,可以为注解元素指定一些值。
modifiers @interface AnnotationName
{
elementDeclaration1;
elementDeclaration2;
}
举例来说
public @interface Message
{
String sendTo() default "[none]";
int level()=0;
}
每个注解都有下面的格式
@AnnotationName(elementName1=value1,elementName2=value2)
举例来说
@Message(sendTo="Jack",level=5)
注解元素的类型
- 基本类型
- String
- Class
- enum类型
- 注解类型
- 以上类型的数组
注解分类
根据注解参数的个数可以分为:
- 标记注解
没有元素的注解成为标记注解 - 单值注解
- 完整注解
根据注解使用用途和方法可以分为:
- 内置系统注解
- 元注解
- 自定义注解
注解举例
java.lang、java.lang.annotation和javax.annotation包中定义了很多的注解接口,其中四种是元注解,还有三种标准注解,其中有用于编译的注解
| 名称 | 说明 |
|---|---|
| @Override | 检查是否覆盖了来自超类的方法 |
| @Deprecated | 抑制过时的项的警告 |
| @SuppressWarning | 抑制编译器某种特殊类型的警告 |
| @Generated | 目的是代码生成工具使用 |
有用于资源管理的注解
| 名称 | 说明 |
|---|---|
| @PostConstrut和@PreDestory | 用于控制对象生命周期的环境中,标记了这些注解的方法应该在对象被构建之后,或者在对象移除之前调用 |
| @Resource | 用于资源注入 |
元注解是用于注解其他注解的注解
| 名称 | 说明 |
|---|---|
| @Retention | 定义了该Annotation被保留的时间长短 |
| @Target | 说明了Annotation所修饰的范围、可用于package、type、类型成员、方法参数和本地变量 |
| @Documented | 用于描述其他类型的annotation应该作为被标注的程序成员的公共API,可以被javadoc此类的工具文档化 |
| @Inherited | 阐述了某个被标注的类型是被继承的 |
Java注解的更多相关文章
- 19.Java 注解
19.Java注解 1.Java内置注解----注解代码 @Deprecated //不推荐使用的过时方法 @Deprecated ...
- Java注解入门
注解的分类 按运行机制分: 源码注解:只在源码中存在,编译后不存在 编译时注解:源码和编译后的class文件都存在(如@Override,@Deprecated,@SuppressWarnin ...
- java注解(Annotation)解析
注解(Annotation)在java中应用非常广泛.它既能帮助我们在编码中减少错误,(比如最常见的Override注解),还可以帮助我们减少各种xml文件的配置,比如定义AOP切面用@AspectJ ...
- JAVA 注解的几大作用及使用方法详解
JAVA 注解的几大作用及使用方法详解 (2013-01-22 15:13:04) 转载▼ 标签: java 注解 杂谈 分类: Java java 注解,从名字上看是注释,解释.但功能却不仅仅是注释 ...
- attilax.java 注解的本质and 使用最佳实践(3)O7
attilax.java 注解的本质and 使用最佳实践(3)O7 1. 定义pojo 1 2. 建立注解By eclipse tps 1 3. 注解参数的可支持数据类型: 2 4. 注解处理器 2 ...
- paip.java 注解的详细使用代码
paip.java 注解的详细使用代码 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/att ...
- JAVA 注解的几大作用及使用方法详解【转】
java 注解,从名字上看是注释,解释.但功能却不仅仅是注释那么简单.注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后 某个时刻方便地使用这些数据(通过 解 ...
- 框架基础——全面解析Java注解
为什么学习注解? 学习注解有什么好处? 学完能做什么? 答:1. 能够读懂别人写的代码,特别是框架相关的代码: 2. 让编程更加简洁,代码更加清晰: 3. 让别人高看一眼. spring.mybati ...
- Java注解配置
Java注解是附加在代码中的一些元信息,用于一些工具在编译.运行时进行解析和使用,起到说明.配置的功能.注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用.包含在 java.lang.annota ...
随机推荐
- CommandPattern
/** * 命令模式 * @author TMAC-J * 将调用者和接受者分离 * 可以将一组命令组合在一起,适合很多命令的时候 */ public class CommandPattern { i ...
- Linux基础介绍【第七篇】
linux用户分类 超级用户:UID=0,root 普通用户:UID 500起,由超级用户或具有超级用户权限的用户创建的用户. 虚拟用户:UID 1-499,为了满足文件或服务启动的需要而存在,一般都 ...
- 多用多学之Java中的Set,List,Map
很长时间以来一直代码中用的比较多的数据列表主要是List,而且都是ArrayList,感觉有这个玩意就够了.ArrayList是用于实现动态数组的包装工具类,这样写代码的时候就可以拉进 ...
- 如何让我们的PHP在Jexus中跑起来
最近一段时间,经常看到不少的朋友在问,应该怎么设置才能够让Jexus支持PHP.其实,Jexus在很早之前就已经是可以支持PHP,像Apache或Nginx一样充当PHP的Web服务器的.不过由于没有 ...
- Web应用多账号系统设计及微信扫码登录实现
Web应用多账号系统设计及微信扫码登录实现 1 前言概述 公司对功能测试,性能测试,安全测试等等都做了比较好的自动化后,急需要一个MIS系统来统一管理这些结果及报表. 此MIS系统特点如下: 仅内 ...
- Entity Framework 6 Recipes 2nd Edition(12-8)译 -> 重新获取一个属性的原始值
12-8. 重新获取一个属性的原始值 问题 在实体保存到数据库之前,你想重新获取属性的原始值 解决方案 假设你有一个模型 (见 Figure 12-11) 表示一个员工( Employee),包含工资 ...
- GIT服务器的四种协议
本地协议 最基本的就是_本地协议(Local protocol)_,所谓的远程仓库在该协议中的表示,就是硬盘上的另一个目录.这常见于团队每一个成员都对一个共享的文件系统(例如 NFS)拥有访问权,或者 ...
- Linux 与 Linux Windows 文件共享 小知识
Linux 与 Linux Windows 文件共享 前提说明:windows主机信息:192.168.1.100 帐号:abc 密码:123 共享文件夹:sharelinux主机信息:192.1 ...
- Android开发学习之路-关于Exception
Exception在Java中是表示异常的一个类.它是Throwable的子类. 而Exception的子类RuntimeException是一个特殊的异常类,在代码中不需要对此类进行throw,而是 ...
- angularjs集成requirejs
其实说成使用requirejs加载angularjs应用会更贴切一些 <body> <span ng-controller="homeController"> ...