• Spring注解学习笔记一


    一、Retention注解
    Retention(保留)注解说明,这种类型的注解会被保留到那个阶段. 有三个值:
    1.RetentionPolicy.SOURCE —— 这种类型的Annotations只在源代码级别保留,编译时就会被忽略
    2.RetentionPolicy.CLASS —— 这种类型的Annotations编译时被保留,在class文件中存在,但JVM将会忽略
    3.RetentionPolicy.RUNTIME —— 这种类型的Annotations将被JVM保留,所以他们能在运行时被JVM或其他使用反射机制的代码所读取和使用.

    下面示例中, @Retention(RetentionPolicy.RUNTIME)注解表明 SharkLogAnnotation注解将会由虚拟机保留,以便它可以在运行时通过反射读取.

    二、Documented 注解
    Documented 注解表明这个注解应该被 javadoc工具记录. 默认情况下,javadoc是不包括注解的. 但如果声明注解时指定了 @Documented,则它会被 javadoc 之类的工具处理, 所以注解类型信息也会被包括在生成的文档中。

    三、Target注解
    @Target说明了Annotation所修饰的对象范围:Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。在Annotation类型的声明中使用了target可更加明晰其修饰的目标。
    作用:用于描述注解的使用范围(即:被描述的注解可以用在什么地方)
    取值(ElementType)有:
    1.ElementType.CONSTRUCTOR:用于描述构造器
    2.ElementType.FIELD:用于描述域
    3.ElementType.LOCAL_VARIABLE:用于描述局部变量
    4.ElementType.METHOD:用于描述方法
    5.ElementType.PACKAGE:用于描述包
    6.ElementType.PARAMETER:用于描述参数
    7.ElementType.TYPE:用于描述类、接口(包括注解类型) 或enum声明

    四、Inherited 注解
    这是一个稍微复杂的注解类型. 它指明被注解的类会自动继承. 更具体地说,如果定义注解时使用了 @Inherited 标记,然后用定义的注解来标注另一个父类, 父类又有一个子类(subclass),则父类的所有属性将被继承到它的子类中.

    import java.lang.annotation.Documented;
    import java.lang.annotation.ElementType;
    import java.lang.annotation.Retention;
    import java.lang.annotation.RetentionPolicy;
    import java.lang.annotation.Target;
    
    @Target({ ElementType.PARAMETER, ElementType.METHOD })
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    public @interface SharkLogAnnotation {
        
        String operateModelName() default "";
    
        String sensitiveColumnName() default "cardNo,mobile,phone,mobilePhone,telephone";
    
        String operateDescribe() default "";
    }
  • 相关阅读:
    重学Mybatis从入门到源码之一
    Ribbon的负载均衡策略及使用方法
    SpringCloud之Ribbon的使用及源码解析
    FeignClient spi 调用 短路异常 & 线程池配置
    springboot 中yml配置
    jrebel 启动失败的处理
    使用@Cacheable注解时,Redis连不上,直接调用方法内部的解决方案
    redis scan 命令指南
    正式学习单元测试
    Cannot assign requested address 和 SO_REUSEADDR 参数
  • 原文地址:https://www.cnblogs.com/cocoxu1992/p/10553983.html
Copyright © 2020-2023  润新知