注解的作用和概述
学习注解的目的
1.能够灵活地使用框架提供的注解,最后能够读懂框架的源码
2.能够配合反射将代码书写更加的灵活,更加易于维护和扩展,例如:Properties配置,XML配置,注释配置【Java配置】
3.极大程度地简化了代码,提高了代码可读性
注解的概述:
-
Java提供了一种源程序元素和任何信息或者元素数据相关联的一种方法或者渠道。
1.源程序中元素:Java文件 构造方法、成员变量、成员方法…
2.信息:就是一些配置数据【也可以理解为注释。
3.元数据:就是元注解,对注解进行注解。
4.关联:元素和注解绑定成为注解。 -
简单的理解:就是相当于一些类似于注释的信息和源程序中的元素绑定的一种技术,中技术叫做注解,这种手段可以通过反射获取到元素对象,在获取到这个元素上面绑定的注解,通过绑定的注解获取里面配置信息,从而达到能够在程序运行阶段通过这些信息动态地改变程序的运行逻辑。
JDK中常见的注释
- JDK中常见的注释:
@Override: 表示注释修饰的方法必须满足重写的规则
@Oeprecated:表示成员过时,编译器可以在程序运行的时候获取到该注解
@SupresWarnings:表示忽略编译器的警告
@FunctionalInterface:表示该接口是一个函数式接口,并且可以作为Lambda表达式参数传入
注解的分类
-
注解的分类:
源码注解:注解只在源码中有效,当编译生产字节码文件的时候,注解就不存在了,其实就是注释APT编译时注解:注解在源码和编译时期有效,在jvm运行的时候就不存在了
运行时注解:注解在源码和编译时有效,同时在程序执行过程也存在(反射获取运行时注解获取里面配置信息,动态改变程序的逻辑)
元注解:对注解进行注解的注解
-
按照来源分类:
JDK中自带的注解: @Override @Oeprecated
第三方注解:@Table, @Column, @Component, @Service, @Bean
自定义注解:自己定义注解自己使用在自己代码中
元注解:对注解进行注解的注解
注解的基本语法
注解的基本语法:
1.注解是由@interface 关键字来描述
2.注释是有成员,这个成员的含义类似于成员变量,写法类似于成员方法
成员是没有参数没有异常声明的
3.注释可以是 基本数据类型
4.注释成员可以有默认值
5.注释的成员命名有一个小细节(小规范):如果一个注释中只有一个成员,
那么这个成员属性名称叫做value
6.如果一个注解没有任何的成员,那么把该注解成为标记注解
几个重要常见的元注解
-
常见的几个非常重要的元注解:
@Retention 表示对它所标记的元素生命周期(生命周期参考的范围看RetentionPolicy枚举类) @Target 表示标记定义的注解可以和什么目标元素绑定 @inherited 表示该注解可以被继承 @Document 表示该注解可以被生成API文档