zoukankan      html  css  js  c++  java
  • spring boot: Annotation 注解之@Target的用法介绍

    前言

    目前,越来越多的架构设计在使用注解,例如spring3.0、struts2等框架。让我们先来看看注解的定义。如下是一段使用了JDK 5 Annotation @Target的代码:

    @Target({ElementType.METHOD})
    @Retention(RetentionPolicy.RUNTIME)
    @Inherited
    @Documented
    public @interface AsynLog {
      
     }
    

      

    一、@Target的用法


    java.lang.annotation.Target

    用于设定注解使用范围

    java.lang.annotation.ElementType

    Target通过ElementType来指定注解可使用范围的枚举集合


    二、ElementType的用法

     

    取值 注解使用范围
    METHOD 可用于方法上
    TYPE 可用于类或者接口上
    ANNOTATION_TYPE 可用于注解类型上(被@interface修饰的类型)
    CONSTRUCTOR 可用于构造方法上
    FIELD 可用于域上
    LOCAL_VARIABLE 可用于局部变量上
    PACKAGE 用于记录java文件的package信息
    PARAMETER 可用于参数上

    这里重点说明下:ElementType. PACKAGE。它并不是使用在一般的类中,而是用在固定的文件package-info.java中。这里需要强调命名一定是“package-info”。由于package-info.java并不是一个合法的类,使用eclipse创建类的方式会提示不合法,所以需要以创建文件的方式来创建package-info.java。

    例如,定义可使用范围PACKAGE:

    @Target({ElementType.PACKAGE,ElementType.METHOD})
    @Retention(RetentionPolicy.RUNTIME)
    @Inherited
    @Documented
    public @interface AsynLog {
      
    }
    

     

     那么,创建文件:package-info.java,内容如下:

    @AsynLog
    package org.my.commons.logs.annotation; 
    

      

  • 相关阅读:
    Kafka的Controller
    kafka 为什么能那么快?高效读写数据,原来是这样做到的
    kafka的消费
    kafka的数据同步原理ISR、ACK、LEO、HW
    kafka 工作流程及文件存储机制
    kafka的简单架构
    Sangfor AC在线用户显示大量公网IP
    H3C抓包命令
    Android- 音量控制
    call指令的地址是怎么计算出来的。
  • 原文地址:https://www.cnblogs.com/achengmu/p/8275595.html
Copyright © 2011-2022 走看看