zoukankan      html  css  js  c++  java
  • Spring 自定义注解(导出的时候需要增加导出日志而写的)

    `
    @Retention(RetentionPolicy.RUNTIME)
    @Target({ElementType.METHOD})
    @Documented
    public @interface ExpLog {
    /**
    * 日志描述信息
    */
    String description() default "";
    }

    `
    @Retention注解是指生命周期
    按生命周期来划分可分为3类:
    1、RetentionPolicy.SOURCE:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃;
    2、RetentionPolicy.CLASS:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期;
    3、RetentionPolicy.RUNTIME:注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在;
    这3个生命周期分别对应于:Java源文件(.java文件) ---> .class文件 ---> 内存中的字节码。

    @Target注解
    @Target说明了Annotation所修饰的对象范围:Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。在Annotation类型的声明中使用了target可更加明晰其修饰的目标。
    主要有:
    /**用于描述类、接口(包括注解类型) 或enum声明 Class, interface (including annotation type), or enum declaration */
    TYPE,

    /** 用于描述域 Field declaration (includes enum constants) */
    FIELD,
    
    /**用于描述方法 Method declaration */
    METHOD,
    
    /**用于描述参数 Formal parameter declaration */
    PARAMETER,
    
    /**用于描述构造器 Constructor declaration */
    CONSTRUCTOR,
    
    /**用于描述局部变量 Local variable declaration */
    LOCAL_VARIABLE,
    
    /** Annotation type declaration */
    ANNOTATION_TYPE,
    
    /**用于描述包 Package declaration */
    PACKAGE,
    
    /**
     * 用来标注类型参数 Type parameter declaration
     * @since 1.8
     */
    TYPE_PARAMETER,
    
    /**
     *能标注任何类型名称 Use of a type
     * @since 1.8
     */
    TYPE_USE
  • 相关阅读:
    element 树形控件使用
    js粘贴图片并显示
    vue-element Tree树形控件通过id默认选中
    解决win10shift+右键显示在此处打开powershell而不是命令窗口的问题
    maven安装与配置
    解决dos窗口中文乱码问题
    vue单页面应用刷新网页后vuex的state数据丢失的解决方案
    vue 单个倒计时组件
    js将秒转换为时分秒
    vue3.0用vue-awesome-swiper
  • 原文地址:https://www.cnblogs.com/jiazhihao/p/15131341.html
Copyright © 2011-2022 走看看