1.JDK自带注解:
@Override(覆盖) @Deprecated(过时) @Suppvisewarnings(忽略警告)
2.常见第三方注解
Spring
@Autowired @Service @Repository
Mybatis
@InsertProvider @UpdateProvider @Options
注解的分类
1.按照运行机制分:
①源码注解;注解只在源码中存在,编译成.class文件就不存在了。
②编译时注解;注解在源码和.class文件中都存在。
③运行时注解:在运行阶段还起作用,甚至会影响运行逻辑的注解。
2.按照来源分:
①JDK的注解;
②第三方的注解;
③自定义的注解。
元注解:注解的注解
@Target(作用域) @Retention(生命周期) @Inherited(允许子注解继承) @Documented(生成javadoc时会包含注解)
自定义注解:
自定义注解的语法要求
1.使用@interface关键字定义注解;
2.成员以无参无异常方式声明;
3.可以用default为成员指定一个默认值;
4.成员的类型是受限的,合法的类型包括原始类型及String,Class,Annotation,Enumeration
5.如果注解只有一个成员,则成员名必须取为value(),在使用时可以忽略成员名和赋值号(=);
6.注解类可以没有成员,没有成员的注解称为标识注解。
使用自定义注解
使用注解的语法:
@<注解名>(<成员名1>=<成员值1>,<成员名2>=<成员值2>,...)
解析注解:通过反射获取类、函数或成员上的运行时注解信息,从而实现动态控制程序运行的逻辑。