知识点: 注解 Annotation
- 基本注解 (以@开头)
注解名 | 描述 |
@Override | 标记重写方法 |
@Deprecated | 标记已过时 |
@WebServlet | 标记是一个Servlet |
@WebFilter | 标记是一个Filter 过滤器 |
@WebListener | 标记是一个Listener监听器 |
2.注解
注解相当于标记,加上注解相当于程序打上了某种标记。 在类加载时或编译时或运行时,通过反射获取注解,从而执行相应的操作。 注解可以加在:包、类、方法、字段、构造方法...等 |
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="天人肖勇") |
- 特殊value() 属性
数据类型 value(); 特点:如果只给value属性赋值,可以省略value = |
3. 数组类型属性
数据类型[] 属性名() default {值,值...}; 特点:如果数组只有1个值,可以省略{} |
6.典型应用Hibernate底层实现,
根据实体类自动生成建表的sql语句,并执行。