Java注解

1、注解的作用
代替xml配置文件,servlet3.0中,就可以不再使用web.xml文件,而是所有配置文件都使用注解!注解是由框架读取的。
2、注解的使用
2.1、定义和使用注解类

/**
 * 注解类
 * @author John
 */
public @interface MyAnno {
}
//注解可以作用在:类(接口或者枚举)、属性、方法、构造器、包、参数、局部变量、全局变量。
@MyAnno//注解放在类上
class Demo{
@MyAnno//注解放在全局变量上
String str;
@MyAnno//注解放在构造器上
Demo(){
}
@MyAnno//注解放在方法上
void fun1(@MyAnno String s){//注解放在参数上
    @MyAnno//注解放在局部参数上
    String str1;
}
}

2.2、注解的属性
定义属性:类型 名称 ()

public @interface MyAnno {
int age();
String name();
}

使用时给其赋值

  @MyAnno(age=100,name="john")//注解放在类上

设置默认值:

  int age() default 100;

在有默认值的时候在使用的时候可以不进行赋值
在只给名为value赋值的时候可以只写值,不写名
注解的属性类型可以是8中基本属性类型,String,Enum,Class,注解类型,包装类型不能用
2.3、注解的作用域限定

  @Target(ElementType.METHOD)

public static final ElementTypeTYPE 类、接口(包括注释类型)或枚举声明
public static final ElementTypeFIELD 字段声明(包括枚举常量)
public static final ElementTypeMETHOD 方法声明
public static final ElementTypePARAMETER 参数声明
public static final ElementTypeCONSTRUCTOR 构造方法声明
public static final ElementTypeLOCAL_VARIABLE 局部变量声明
public static final ElementTypeANNOTATION_TYPE 注释类型声明
public static final ElementTypePACKAGE 包声明
2.4、注解的保留策略

  @Retention(RetentionPolicy.RUNTIME)

源代码文件:(SOURCE)注解只保留在源代码中,当编译时就被忽略
字节码文件:(CLASS)注解保留到class字节码文件中,类加载到JVM中会被忽略
JVM中:(RUNTIME)会把注解加载到JVM内存中
限定注解的保留策略
2.5、反射注解
类上的注解:

@Test
public void fun1() {
    Class<Demo> c = Demo.class;
    MyAnno myAnno = c.getAnnotation(MyAnno.class);
    System.out.println(myAnno.name());
}

获取其他元素上的注解:

  MyAnno myAnno = (class/method/constructor/field/accessibleObject).getAnnotation(MyAnno.class);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,079评论 19 139
  • 注解 创建注解 下面代码创建了一个名为MyAnno的注解,有两个成员str和val。@Retention(…)注解...
    kylinxiang阅读 3,708评论 0 2
  • Java注解一直是我懵懵懂懂的一部分,之前老师虽然讲过,但是那时候就属于听不懂的状态。可是,事实上,我们开发中总能...
    鲁克巴克诗阅读 667评论 0 1
  • 上一回 刀剑自双舞,猛志今常在(下) 第二十九回 隔窗知夜雨,秋水耀洛神(上) 天际之畔,两尾虎头海雕振翅于...
    死在水里的鱼阅读 447评论 0 1
  • 桂林漓江风景区 桂林漓江风景区游览胜地繁多,在短期内只能择其主要景点进行游览,其中一江(漓江)、两洞(芦笛岩、七星...
    旅途中有你陪伴阅读 337评论 0 0