Annotation(注解)
注解是java推出的一种注释机制,特点是它可以在编译运行阶段读取,从另一个角度看Annotation也是一个java类
一个Annotation类里面可以继续引用其他的Annotation类
- Target
它自身也是一个注解,他只有一个数组属性,用于设定该注解的目标范围,因为是数组所以可以同时设定多个范围
如果要同时作用在类和方法上:
@Target({ElementType.TYPE,ElementType.METHOD})
Target值只要被设定为一种类型,那么你就只能在这个范围内引用它,其他地方都不行
- ElementType.TYPE
@Service
public class MessageServiceImpl implements MessageService{
public String getMessage() {
return "Hello World!";
}
}
- ElementType.METHOD
public class MessageServiceImpl implements MessageService{
@ResponseBody
public String getMessage() {
return "Hello World!";
}
}
- ElementType.FLELD
public class MessageServiceImpl implements MessageService{
@Autowired
private WorkspaceService workspaceService;
}
- ElementType.PARAMETER
public class MessageServiceImpl implements MessageService{
public String getMessage(@RequestParam("msg")String msg) {
return "Hello "+msg;
}
}
- Retention
用于声明注解的声明周期,有三个值可以选择:
1、SOURCE:纯注释作用 2、CLASS:也就是在编译阶段有效 3、RUNTIME:运行时有效
@Retention(RetentionPolicy.RUNTIME)
-
Doucumented
将注解中的元素包含到javaDoc文档中 -
@interface
固定语法,声明当前的Java类型是Annotation -
Annotation属性
和类的属性差不多,约定了属性的类型和属性的名称
Annotation也是java类,所以也需要import