SpringBoot项目中自定义注解的使用

Posted 好好活着活到春天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot项目中自定义注解的使用相关的知识,希望对你有一定的参考价值。

1.定义注解接口

  1. /**

  2. * @Package: com.example.config

  3. * @Description: 定制一个接口

  4. * @author: zfy

  5. * @date: 19/2/23 下午4:20

  6. */

  7. @Documented

  8. @Retention(RUNTIME)

  9. @Target(METHOD)

  10. public @interface MyLog {

  11.    String value() default "日志注解";

  12. }

[^Documented 注解]: Documented 注解表明这个注解应该被 javadoc工具记录. 默认情况下,javadoc是不包括注解的. 但如果声明注解时指定了 @Documented,则它会被 javadoc 之类的工具处理, 所以注解类型信息也会被包括在生成的文档中 [^Inherited 注解]: 它指明被注解的类会自动继承. 更具体地说,如果定义注解时使用了 @Inherited 标记,然后用定义的注解来标注另一个父类, 父类又有一个子类(subclass),则父类的所有属性将被继承到它的子类中

  •  

    @Target(ElementType.TYPE) //接口、类、枚举、注解

  •  

    @Target(ElementType.FIELD) //字段、枚举的常量

  •  

    @Target(ElementType.METHOD) //方法

  •  

    @Target(ElementType.PARAMETER) //方法参数

  •  

    @Target(ElementType.CONSTRUCTOR) //构造函数

  •  

    @Target(ElementType.LOCAL_VARIABLE)//局部变量

  •  

    @Target(ElementType.ANNOTATION_TYPE)//注解

  •  

    @Target(ElementType.PACKAGE) ///包

  •  

    1.RetentionPolicy.SOURCE——这种类型的Annotations只在源代码级别保留,编译时就会被忽略

  •  

    2.RetentionPolicy.CLASS——这种类型的Annotations编译时被保留,

     在class文件中存在,但JVM将会忽略

  •  

    3.RetentionPolicy.RUNTIME——这种类型的Annotations将被JVM保留,所以他们能在运行时被JVM或其他使用反射机制的代码所读取和使用.

以上是关于SpringBoot项目中自定义注解的使用的主要内容,如果未能解决你的问题,请参考以下文章

Spring Bootspringboot中自定义配置项

Spring Bootspringboot中自定义配置项

Spring Bootspringboot中自定义配置项

Springboot 获取.yml中自定义参数

学习笔记Spring中自定义注解

Android 中自定义注解和注解解析