zoukankan      html  css  js  c++  java
  • java 注解的使用

    契机

    一直以来做spingboot项目开发的时候,springboot的自定义注解用起来很是方便,但是对注解背后的原理总是懵懵懂懂的,知其然不知其所以然。这次借着做作业的机会,决定探究一下注解的原理和如何自定义注解,好好满足一下自己的好奇心。

    适用范围

    JDK 1.8

    什么是注解?

    Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。一些情况下,我们可以通过反射机制来获取标注的内容。通常来说,注解不影响代码的执行,但是极少数情况下我们可以利用注解来影响代码的执行。

    元注解

    有一类注解比较特殊。它们是用来注解的注解,或者说,用来标注其他注解。在JDK1.8中,这些注解有五个,称为元注解

    功能表
    元注解 功能
    @Retention 该元注解用于标注其他注解的生命周期。注解可以存在于源码(编译)、字节码(类加载)或JVM(运行)中
    @Target 该元注解用于标注其他注解可标注的类型。例如接口、类、枚举、注解、属性字段、枚举常量、方法、方法参数、构造函数、泛型甚至是包
    @Documented 该元注解用于将注解中的元素包含到 Javadoc 中
    @Inherited 一个被@Inherited标注了的注解修饰了一个父类,如果他的子类没有被其他注解修饰,则它的子类也继承了父类的注解。
    @Repeatable 该元注解标注的注解可以同时作用一个对象多次,但是每次作用时又可以代表不同的含义。
    可选参数
    元注解 可能的参数
    @Retention RetentionPolicy.SOURCERetentionPolicy.CLASSRetentionPolicy.RUNTIME
    @Target ElementType.TYPE(接口、类、枚举、注解),ElementType.FIELD(属性字段、枚举常量),ElementType.METHOD(方法),ElementType.PARAMETER(方法参数),ElementType.CONSTRUCTOR(构造函数),ElementType.LOCAL_VARIABLE(局部变量),ElementType.ANNOTATION_TYPE(注解),ElementType.PACKAGE(包),ElementType.TYPE_PARAMETER(泛型,即泛型方法、泛型类、泛型接口),ElementType.TYPE_USE(除了class以外的任意类型)

    示例

    //自定义注解timeLimit
    //Retention注解用于标明自定义注解的生命周期。当其值为RetentionPolicy.RUNTIME时,自定义注解在运行阶段仍存在于虚拟机中,可以通过反射机制来读取其中内容
    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.METHOD)//Target注解用于标明自定义注解可标注的类型。其值为ElementType.METHOD时,自定义注解可标注于方法上
    @interface timeLimit{
        int value() default 0;
    }
    
  • 相关阅读:
    骑行的乐趣
    亲子运动会
    【转载】程序员接私活经验总结,来自csdn论坛语录
    【原创】Asp.Net MVC 学习笔记之使用Model验证
    【转载】经典js技巧
    【原创】关于Sqlserver的LogFiles超大的问题
    【总结】Winform编程常用小技巧
    【总结】WebBrowser相关资料索引
    【原创】Asp.Net MVC学习笔记之使用AcceptVerbs标签来制定Action的响应行为
    【转载】一个资深SOHO程序员对新人的建议网上接活(转自CSDN)
  • 原文地址:https://www.cnblogs.com/semiprimenumber/p/13832341.html
Copyright © 2011-2022 走看看