java注解

注解也叫做元数据,即一种描述数据的数据。
解析一个注解往往有两种形式,一种是编译器的直接扫描,一种是运行期的反射。
编译器的扫描指的是编译器在对java代码编译成字节码的过程中会检测到某个类或者方法被一些注解修饰,这时它就会对于这些注解进行某些处理。

注解的用途
1.生成文档
2.编译检查
3.编译时动态处理
4.运行时动态处理

元注解
1.retention,解释说明这个注解的存活时间
RetentionPolicy.SOURCE 注解只在源码阶段保留,在编译器进行编译时它将被丢弃忽视。
RetentionPolicy.CLASS 注解只被保留到编译进行的时候,它并不会被加载到 JVM 中。如Java内置注解,@Override、@Deprecated、@SuppressWarnning等
RetentionPolicy.RUNTIME 注解可以保留到程序运行的时候,它会被加载进入到 JVM 中,所以在程序运行时可以获取到它们。如SpringMvc中的@Controller、@Autowired、@RequestMapping等。

2.documented 将注解中的元素包含到javadoc中

3.target 指定注解运用的地方
ElementType.ANNOTATION_TYPE 可以给一个注解进行注解
ElementType.CONSTRUCTOR 可以给构造方法进行注解
ElementType.FIELD 可以给属性进行注解
ElementType.LOCAL_VARIABLE 可以给局部变量进行注解
ElementType.METHOD 可以给方法进行注解
ElementType.PACKAGE 可以给一个包进行注解
ElementType.PARAMETER 可以给一个方法内的参数进行注解
ElementType.TYPE 可以给一个类型进行注解,比如类、接口、枚举

4.inherited 继承,但是他并不是说注解本身可以继承,而是说如果一个超类使用了该注解,那么如果啊的子类没有被任何注解应用的话,那么这个子类就继承了超类的注解
5.repeatable 可重复,对同一种注解多次使用的时候。

//该注解来表名注解的作用目标 type-接口,类,枚举,注解,method-方法
@Target({ElementType.METHOD, ElementType.TYPE})
//该注解来定义一个注解的保存范围
@Retention(RetentionPolicy.RUNTIME)
public @interface RoleControl {
    RoleEnum role();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值