1.概述
java中的注解就是如下图所示,注解是我们在开发时经常见到的东西。
我们为什么要学习注解呢?学习注解又有什么好处呢?学完注解我们能做什么?
1学习注解有助于我们读懂别人的代码,尤其是关于框架的代码。
2可以使我们编程可以变得简单,代码更加清晰
3可以让别人高看一眼。
会用不是重点,重点是我们可以通过自定义注解解决问题。
1.1概念
注解是java中提供了一种原程序中的元素关联任何信息和任何元素的途径和方法。
2java中的常见注解
jdk 自带的注解
2.1 @Override 重写方法时使用的标记 ,表示覆盖父类方法
@Deprecated 表示方法已过时,单同时有人可能正在使用无法修改 是用此注解标识,对于标示过的方法
重写时会在 代码中提示方法已过时。
@Suppvisewarning 如果我们须要使用已过时方法,有不编译工具提示就可以使用此标示,
格式@Suppvisewarning("deprecation")表示忽略过时
2.2常见的第三方注解
@Autowired @InsertProvider
Spring @Service @Mybatis @UpdateProvider
@Repository @Options
可以简化代码。
3 注解的分类
3.1分类 机制
3.11按照源码注解
注解只在源码中存在,编译成.class文件就不存在了。
3.12编译时注解
注解在源码和.class文件中都存在
@Override@Deprecated @Suppvisewarning 属于编译器注解
3.13运行时注解
在运行阶段还起作用,甚至会影响运行逻辑的注解
@Autowired属于运行时注解
3.2按照来源来分
3.21来自jdk 的注解
3.22来自第三方的注解
我们大部分解除的注解
3.33我们自定义的注解
3.3元注解
注解的注解
4自定义注解(重点)
4.1自定义注解的语法要求
4.11 成员类型是有限制的,合法的类型包括基本类型及String,Class,Annotation,Enumeration.
4.12 注解只有一个成员时,成员名称必须取名为value(),使用时可以互虐成员名和赋值号(=)
4.13 注解内可以没有成员,没有成员的注解成为标示注解
4.2注解的注解(元注解)
这就是元注解
表示注解的作用域
注解作用域列表
1.CONSTRUCTOR
构造函数声明
2.FIELD
字段声明
3.LOCAL_VARIABLE
局部变量
4.METHOD
方法声明
5.PACKAGE
包声明
6.PARAMETER
参数声明
7.TYPE
类/接口声明
生命周期
SOURCE
只在源码显示编译时会丢弃
CLASS
编译是会记录到class中,运行时忽略
RUNTIME
运行时存在,可以通过反射读取
允许子类继承
生成javaDoc时会包含注解信息
4.3使用自定义注解
使用语法
@<注解名>(<成员名1>=<成员值1>,<成员名1>=<成员值1>.....)
4.4解析注解
通过反射或去类,函数或成员上的运行时注解信息,从而实现动态控制程序运行的逻辑