拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Java注解,99%的人只会用,却不知它才是代码的隐藏BOSS

它是 Java 极为关键且重要 的 组成部分, 自 J2SE 5.0 那个时代起便已然存在了。于我们所编写的代码当中, 我们在任何地方都能够看到数量众多的注解, 诸如 、 、 。这些注解我们或许相当熟悉, 然而注解所具备的作用、呈现的工作原理、展现的工作方式以及我们究竟该如何去自定义注解, 我们或许并不熟悉。在这篇文章里我们就要对这些知识点展开探索。1、什么是注解注解属于一种特别的元数据, 元数据是针对数据的那种数据, 因而, 注解便是代码的元数据。我们瞧瞧下面这个范例。我们借助注解来点明要重写的方法, 以此表明我们将对该方法予以重写。在此处, 即便我们不运用注解, 可以明确这一方法依然能够顺利执行。那么注解所具备的优势究竟是什么呢? 给予编译器一种指示, 即子类要是需要重写此方法, 那就得依照自身所定义的格式来输出相应内容, 这实际上就是对父类方法的覆盖, 在父类之中要是不存在这个方法, 编译器便会给出错误。所以, 注解是一种特殊的Java构造器, 它能够用来装饰类, 它能够用来装饰方法, 它能够用来装饰字段, 它能够用来装饰参数, 它能够用来装饰变量, 它能够用来装饰构造函数或是包。2、为什么要使用注解在注释处于初始状态更甚至是处于后方之时, XML被大范围地运用于来定义元数据。然而随着项目里代码数量的不断增多攀升, 基于XML的维护演变得越逐繁杂难懂费心扰人啦。从事开发相关工作的职员心底切实所期望希望愿景在于, 促使关联的元数据与代码能够紧密连接彼此难解难分, 可XML与代码两者相关纽带耦合着实颇为松散于某些特定情况状况情境之下, 简直如同彼此独立分离开来毫无瓜葛。有关运用注解抑或是基于XML来进行标记, 向来是个存有争议的论题, 对于从事开发相关工作的人员而言, 记住下面这两个原则就行还有一个关键要素是, 注解规定了于代码里厘定元数据的规范途径。在注解出现以前, 开发人员运用自身的办法去定义元数据, 以至于导致元数据定义陷入紊乱状态。但注解乃是标准化的事物, 更便于维护。当下, 绝大多数框架会把XML与注解搭配运用, 目的在于全面发挥两者的有利之处。3、注解的工作方式注解只是元数据, 并不涵盖任何业务逻辑, 那它的使用者究竟是谁呢? 诸如这般的注解, JVM是其使用者, 它在字节码层面开展工作。要是我们自行编写了一个注解, 那我们就得去实现它的消费者, 不然的话, 我们自定义的注解是毫无作用的。4、编写自定义注解在开展编写自定义注解这个行为的时候, 我们首要之事是弄明白几个处于默认状态的注解, 此几个注解其作用仅仅是作用于另外的一个注解上方。注解表明这个注解要被记录。注解默认状态下是不被记录的。注解表明该注解保留到那个阶段主要有三个值—— 这种注解保留在源代码级别编译时就会被忽略CLASS这种注解, 在编译的时候会被保留下来, 它在class文件当中存在着, 然而JVM将会对其进行忽略。有这样一种注解, 它会被JVM留存下来, 借助反射机制能够把它获取到, 进而加以运用。注解所表明的是 , 该注解发挥作用的范畴。其中涵盖了 , 诸如field 、 或是构造方法 、 以及成员变量 、 还有枚举值等各类属性。jj1.yyD521.CoM注解用以表明, 该注解对于子类是否会产生影响。若在定义的注解之上运用了标记, 那么使用该注解的某一个父类, 其所有子类会在默认情况下继承全部的属性。现在我们定义自己的一个注解注解之上运用了三个有着默认性质的注解, 显示出这属于一个注解留意并非接口。与此同时, 我们给定了cron以及desc这两项属性。这便是一个完整无缺的注解, 我们接着来看怎样去运用它。设想这样一个业务场景, 业务里存在诸多定时任务, 针对这些定时任务, 以手动方式实现了线程池来维护并调度相关方法。那么, 线程池中要怎样去获取成为定时任务的那些方法呢? 这正是自定义注解发挥作用之时。我们把自定义的注解运用在了方法上面, 其目的在于能让进行调度的线程池觉察到它。具体的实现情形查看如下代码:我们对所有定时任务方法进行循环遍历, 从中获取方法上所具有的注解, 针对方法上出现的有的注解, 进行说明标识, 表明该方法乃是定时任务的方法, 另外, 去获取注脚上已然存在的cron属性值, 用以设定执行任务的周期。至此我们就完成了一个自定义的注解。5、注解用例功能强大的注释, 和诸如之类的框架对注解加以广泛运用, 应用于日志记录以及验证方面, 在规范3.0里边, 引入了诸多注解, 特别是和安全性相关联的注释, 咱们来看一看一些平常常见的注解。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门