java 注解

这里主要从5个方面来说明注解

  1. 什么是注解
  2. 注解有什么用
  3. 怎么使用注解
  4. 怎么自定义注解
  5. 注解使用实例
1、什么是注解?

在未开始学习任何注解具体语法而言,你可以把注解看成一张标签。这有助于你快速地理解它的大致作用。

2、注解有什么用?

注解有什么用呢!其实就相当于在一个对象上(这里可能不太准确)加上了一定的附加功能,标识或者是添加附加的功能。其实当你使用注解后,就发现,以前需要就行各种配置文件的功能都可以通过注解来实现,大大的简化了代码工作量;

3、那怎么使用注解呢?

注解可分为以下几种类型

按运行机制分

  • 源码注解 只在源码中存在
  • 编译时注解 在class中依然存在,如@Deprecated
  • 运行时注解 运行阶段起作用,如@Autowired

按来源分

  • JDK自带注解
  • 三方注解 最常见
  • 自定义注解

元注解

注解的注解

  • 按作业划分:生成文档。这是最常见的,也是java 最早提供的注解。常用的有@see @param @return 等
  • 跟踪代码依赖性,实现替代配置文件功能。比较常见的是spring 2.5 开始的基于注解配置。作用就是减少配置。现在的框架基本都使用了这种配置来减少配置文件的数量。
  • 在编译时进行格式检查。如@Override 放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查出。

注解的使用

比如java 自带的一些注解

@Override  

            只能用于方法(不能用于类,包声明或者其他构造)
              作用:可以保证编译时候Override函数的声明正确性
              用法:@Override public void fun(){..}

 @Deprecated  

            同样只能作用与方法
              作用:对不应再使用的方法进行注解
              用法:@Deprecated public void fun{...} 

 @SupressWarnings 

              可以注解一段代码
              作用:关闭特定的警告信息,例如你在使用泛型的时候未指定类型

               用法: @SupressWarnings(value={"unchecked"})

Java中还提供了四种元注解,专门负责注解其他的注解
@Target   表示该注解可以用于什么地方。可用的ElementType参数包括:
          CONSTRUCTOR : 构造器的声明
          FIELD : 域声明(包括enum实例)
          LOCAL_VARIABLE : 局部变量声明
          METHOD : 方法声明
          PACKAGE : 包声明
          PARAMETER : 参数声明
          TYPE : 类、接口(包括注解类型)或enum声明


@Retention 表示需要在什么级别保存该注解信息。可选的RetentionPoicy参数包括:
           SOURCE : 注释将被编译器丢掉
           CLASS : 注释在class文件中可用,但会被VM丢弃
           RUNTIME : VM将在运行时也保留注解,因此可以通过反射机制读取注解的信息。


@Documented 将注解包含在JavaDoc文档中,这样javadoc 命令生成的文档包括该注解

@Inheried  允许子类继承父类中的注解。

4、怎么自定义注解

其实自定义注解很简单,如下所示

/**
 * 资源相关操作注解
 * 
 * @author linqh
 *
 */
@Target({ ElementType.TYPE })  //定义该注解可以使用在接口和类上
@Retention(RetentionPolicy.RUNTIME)  //定义了该注解在jvm运行时保留
@Documented                                        //定义该注解写入文档
public @interface Operation {         //@interface 关键字定义 这是一个注解


// String entity() default "";


String name();


OperationEnum[] operations();


}
通过上面的注解定义,我们就可以使用自定义的注解了;

5、注解使用实例

最后通过项目中的一个注解实例来结束这篇文章。

本实例创建的注解主要用于控制权限操作,注解后的类只能具有相应的操作。不能超过注解的操作范围

  • 创建一个注解类,如上图
  • 在某个实体类上使用该注解,这样emp类,具有规定的这些操作。


  • 前端权限配置,这里显示上面规定的操作。


  • 配置后登陆不同的用户,显示能操作的功能不同



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coder_jt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值