注解的概述
注解是jdk5.0新增加的支持,注解是代码中的特殊标记。
JPA(java持久化框架)就是基于注解的,注解是一种趋势,因为极大程度的简化了程序员编写代码的行数。
框架 = 注解 + 反射 + 设计模式。
注解代替的是原本的xml文件。SpringBoot之所以简单就是因为使用注解代替了繁琐的xml配置。
如何自定义注解(Annotation)
- 注解声明为@interface。
- 内部定义成员,通常使用value来表示。
- 可以指定成员变量的默认值,使用default定义。
- 如果自定义注解没有成员,表明是一个标识作用。
public @interface MyAnnotation{
Stirng[] value();
}
使用注解
@MyAnnotation(value = "hello");
这里只是简单说明了注解的声明,如果想要注解有具体的功能,就需要学习反射的知识。
(后续补充)
自定义注解必须要配上注解的信息处理流程(使用反射)才有意义。
jdk中的元注解
jdk中提供了四种元注解。
元注解就是修饰其他注解的注解。
- Retention 指明所修饰的元注解的生命周期: SOURCE\CLASS(默认行为)\RUNTIME
只有声明为RUNTIME生命周期的注解,才能通过反射获取。 - Target :指定注解能修饰的东西(方法、类、接口、属性、构造器…)
(自定义注解通常都会指明以上两个注解) - Documented 表示所修饰的这个注解在被javadoc解析时,保留下来。(默认不会保留)
- Inherited : 表示它修饰的注解将具备继承性。
(以上两个注解开发中一般不会用到)
jdk1.8中,注解的新特性
- 可重复注解
- 类型注解(后续补充)