1.基本注解 (以@开头)
注解名 | 描述 |
@Override | 标记重写方法 |
@Deprecated | 标记已过时,加上删除线(不推荐) |
@WebServlet | 标记是一个Servlet |
@WebFilter | 标记是一个Filter 过滤器 |
@WebListener | 标记是一个Listener监听器 |
2.注解
概念:注解相当于标记,加上注解相当于程序打上了某种标记。 在类加载时或编译时或运行时,通过反射获取注解,从而执行相应的操作。 注解可以加在:包(pakege)、类(type)、方法(method)、字段(field)、构造方法(constroctor)...等 |
3.元注解 (作用在注解上的注解)
3.1 @Retention(RetentionPolicy.XXX) 指定注解保存时间
值:来自于RetentionPolicy枚举类型的值
值 | 描述 |
SOURCE | 源代码阶段 |
CLASS | 字节码阶段 (默认值) |
RUNTIME | 运行时阶段 |
3.2 @Target({ElementType.XXX,ElementType.XXX...}) 指定注解作用的位置
值:来自于ElementType枚举类型的值
值 | |
TYPE | 类、接口、枚举 |
FIELD | 字段 |
METHOD | 方法 |
PARAMETER | 参数 |
CONSTRUCTOR | 构造方法 |
LOCAL_VARIABLE | 局部变量 |
ANNOTATION_TYPE | 注解 |
PACKAGE | 包 |
注意:如果不写,默认可以放在任何位置 |
4.自定义注解
(1). 写一个注解类 @interface
//设置注解的保存时间 |
(2).写一个使用注解的类
@MyAnnotation |
(3). 写一个类,通过反射获取注解,指定执行的操作
/** |
5. 给注解添加属性
(1). 基本属性语法
数据类型 属性名() default 默认值; 注意:使用注解需要为属性赋值 语法:@MyAnnotation(name="天人肖勇") |
(2).特殊value() 属性
数据类型 value(); 特点:如果只给value属性赋值,可以省略value = |
(3). 数组类型属性
数据类型[] 属性名() default {值,值...}; 特点:如果数组只有1个值,可以省略{} |
- 典型应用Hibernate底层实现,
根据实体类自动生成建表的sql语句,并执行。
1.自定义两个注解(表和列的注解)
2.准备一个使用注解的实体类,标记注解信息
3.写一个根据实体类自动生成表的sql语句的测试类
小结:测试获取注解信息的步骤:
(1).自定义注解类----注解类
(2).使用注解的类
(3).测试获取注解的信息的类---测试类