美文网首页
自定义注解初探

自定义注解初探

作者: 禾叶super | 来源:发表于2019-11-21 16:54 被阅读0次

一直都觉得注解是很难理解的概念,今天尝试着自己也写了一个注解,才发现有的时候真不能依靠感觉或想象,“绝知此事要躬行”,要想知道注解的用法,还要写起来才行。

所以就先从一个例子开始吧。

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Component
public @interface ServiceAnnotation {
    Class<?> value();
}

自定义了一个注解 ServiceAnnotation 。要想了解注解定义的规则,最好的办法是看源码。
比如:

public enum RetentionPolicy {
    /**
     * Annotations are to be discarded by the compiler.
     * 注解将会被编译器忽略
     */
    SOURCE,

    /**
     * Annotations are to be recorded in the class file by the compiler
     * but need not be retained by the VM at run time.  This is the default
     * behavior.
     * 注解将被编译器记录在class文件中,但在运行时不会被虚拟机保留,这是一个默认的行为
     */
    CLASS,

    /**
     * Annotations are to be recorded in the class file by the compiler and
     * retained by the VM at run time, so they may be read reflectively.
     *注解将被编译器记录在class文件中,而且在运行时会被虚拟机保留,因此可以通过反射方式读取它们
     * @see java.lang.reflect.AnnotatedElement
     */
    RUNTIME
}

应用:所有实现Service接口的类上全部应用@ServiceAnno注解

@ServiceAnno(Service.class)
public class ServiceImpl implements Service {

}

为何要使用自定义注解。本次使用注解的目的是在spring的包扫描中找到Service接口的实现类。因此在Service的实现类上加上@ServiceAnnotation ,spring扫描包时,通过@ServiceAnnotation 注解,便可以获取实现Service接口的所有类。

相关文章

  • 自定义注解初探

    一直都觉得注解是很难理解的概念,今天尝试着自己也写了一个注解,才发现有的时候真不能依靠感觉或想象,“绝知此事要躬行...

  • 编译时注解器初探(一)

    编译时注解器初探(一) 注解处理器 (Annotation Processor) 编译时注解和运行时注解定义的方式...

  • 初探Spring注解

    初探Spring注解 1.@Resource注解 2.@Component 3.@Autowired和@Resou...

  • Android进阶之自定义注解

    Android进阶之自定义注解 本篇文章内容包括: 注解的概念 元注解 自定义注解 Android自定义编译时注解...

  • hibernate Validator自定义注解

    如何自定义注解,加入自己的校验逻辑 自定义注解 自定义注解校验类

  • 【JAVA】注解

    元注解 用来定义、声明注解的注解。 @Inherited注解 使用此注解声明出来的自定义注解,在使用此自定义注解时...

  • 注解学习笔记

    什么是注解注解分类注解作用分类 元注解 Java内置注解 自定义注解自定义注解实现及使用编译时注解注解处理器注解处...

  • 2016.10.13-关于注解的自定义和注解的解析

    注解可以分为:1、标识性注解(没有成员变量) 2、注解 3、元注解(注解的注解) 1、注解的自定义 自定义注解的格...

  • 如何编写自定义注解

    上一篇java注解初探介绍了注解的基本概念, @Retention注解参数为CLASS时是编译时注解而RUNTIM...

  • Spring Boot 自定义注解支持EL表达式(基于 Meth

    自定义注解 自定义 DistributeExceptionHandler 注解,该注解接收一个参数 attachm...

网友评论

      本文标题:自定义注解初探

      本文链接:https://www.haomeiwen.com/subject/wsptwctx.html