• JDK 注解详解


    注解用途

      我们在使用spring MVC框架时用到了很多的注解,如:@Controller、@RequestMapping等等,spring框架通过反射获取到标签进行不同的逻辑处理。注解是代码的附属信息,它遵循一个基本原则:注解不能直接干扰程序代码的运行,无论是增加还是删除注解,代码都能正常运行。Java语言解释器会忽略这些注解,而由第三方工具负责对注解进行处理。第三方工具可以利用代码中的注解间接控制程序代码的运行,它们通过Java反射机制读取注解的信息,并根据这些信息更改目标程序的逻辑。

     元注解

    元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:

    @Target

    @Target主要限定注解的使用范围,通过枚举ElementType定义:

    @Retention

    @Retention用于描述注解的声明周期,即注解再什么范围内有效。

      SOURCE:注解只存在与java源文件中,编译时会过滤掉;

      CLASS:注解会被编译器编译到class文件中,但是不会被JVM加载;

      RUNTIME:注解会被编译到class文件,并且会被JVM加载,并可以通过反射获取到。 

    @Documented

    通过@Documented标注的注解可以通过文档工具文档化。

    @Inherited

    @Inherited是一个标记注解,表明该注解是可以被继承的。如果注解标记在class上,那么它的子类会继承该注解。

    但是,实现类并不能继承其接口的注解,覆盖的方法也不能继承其父类方法的注解。

    自定义注解

    注解定义语法:public @interface 注解名 {定义体}

    下面通过一个自定义注解看一下:

    Java使用@interface修饰符来定义注解类,成员声明的限制:

      1)成员已无入参、无抛出异常的方式声明;

      2)可以通过default关键字为成员设置默认值,也可以不设置;

      3)成员类型限制: 

        1.所有基本数据类型(int,float,boolean,byte,double,char,long,short)

        2.String类型

        3.Class类型

        4.enum类型

        5.Annotation类型

        6.以上所有类型的数组

     

  • 相关阅读:
    攻城狮在路上(肆)How tomcat works(一) 简单的web服务器
    攻城狮在路上(肆)How tomcat works(零) 前言说明
    font-face使用备忘
    subversion安装使用
    判断一个类到底是从哪个jar包中调用的工具类
    JavaScript实例
    Nginx(一)
    PHP面向对象(七)
    PHP面向对象(六)
    PHP面向对象(五)
  • 原文地址:https://www.cnblogs.com/monkey0307/p/8110866.html
Copyright © 2020-2023  润新知