Java注解

注解的分类:
按运行机制分:{
源码注解:注解只在源码时存在,编译成.class文件就不存在了
编译时注解:注解在源码和.class文件中都存在(@Override;@Deprecated;@SuppressWarnings)
运行时注解:在运行阶段还会起作用,甚至影响程序的运行逻辑(@Autowired;)
}
按来源分:{
来自jdk的注解:
来自第三方的注解:
自己定义的注解:
}
元注解:注解的注解

 

① jdk自带的注解(annotation):
  @Override:覆盖(继承)父类中的方法
  @Deprecated:指方法已过时
  @SuppressWarnings:忽略警告提示(例如:@SuppressWarnings("deprecation"))

② Java第三方注解:
  Spring:{
    @Autowired:在本类中注入引用类的实例(例如:service层注入dao实例)
    @Service
    @Repository
  }
  Mybatis{
    @InsertProvider
    @UpdateProvider
    @Options
  }

③ 元注解:
  @Target:注解的作用域
  (
  CONSTRUCTOR:构造方法声明,
  FIELD:字段声明,
  LOCAL_VARIABLE:局部变量声明,
  METHOD:方法声明,
  PACKAGE:包声明,
  PARAMETER:参数声明,
  TYPE:类/接口
  )
  @Retention:注解的生命周期
  (

  RUNTIME:运行时存在,可通过反射读取:
  SOURCE:只在源码显示,编译时丢弃;
  CLASS:编译时会记录到.class文件中,运行时忽略
  )
  @Inherited:允许子类继承(只能继承类上的注解,不能继承方法上的注解)
  @Documented:生成javadoc时会包含注解

④ 自定义注解:
  语法:@<注解名> (<成员名1>=<成员值1>,<成员名2>=<成员值2>...)
  格式:
  @Description(desc="I am eyeColor",author="Mooc boy",age=18)
  public String eyeColor(){
    return "red";
  }

posted on 2018-03-02 10:07  荆棘Study  阅读(254)  评论(0编辑  收藏  举报