注解(也称之为元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们尅在稍后某个时刻非常方便地使用这些数据。
注解在一定程度上是把元数据和源代码文件结合在一起,而不是保存在外部文档中。
元注解:就是注解的注解。如 @Target和@Retention.
@Target用来定义你的注解将应用在什么地方
类型 | 含义 |
TYPE | 类,接口、枚举 |
FIELD | 属性 |
METHOD | 方法 |
PARAMETER | 参数 |
CONSTRUCTOR | 构造方法 |
LOCAL_VARIABLE | 局部变量 |
ANNOTATION_TYPE | 注解类型 |
PACKAGE | 包 |
@Retention用来定义该注解在哪一个级别可用,在源代码中(SOURCE)类文件中(CLASS)或者运行时(RUNTIME)
@Documnet 将次注解包含在Javadoc中
@Inherited 允许子类继承父类的注解
在注解中,一般都会包含一些元素以表示某些值。当分析处理注解时,程序或工具可以使用这些值。没有元素的注解称之为标记注解。
/**
* 简单的RPC协议的方法的注解
* @author zhangwei_david
* @version $Id: STRService.java, v 0.1 2014年12月31日 下午4:33:14 zhangwei_david Exp $
*/
@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Component
public @interface RpcService {
String value() default "";
Class<?> inf();
}