有关于注解

  JDK1.5 之后的系统中,内建了3个注解(Annotation)

  1、@Override:表示覆写操作,这个注解在子类重写父类的方法的时候可以用到,也就是重写。在我现阶段的开发中这个注解是用的次数最多的;

  2、@Deprecated:注解表示不建议使用的操作。这个注解写上去以后,是为了告诉调用这个方法的人,最好不好调用这个方法了,因为这个方法已经过时了,以后可能要把这个方法去掉;

  3、@SuppressWarnings:表示压制警告。在平时开发的过程中,我们经常会在代码中出现一些黄色线条标志的代码,而那些代码就是警告,我的项目经理和我说,作为一个合格的程序员,在代码中最好是不要出现黄线,这个注解就是告诉编译器,这块警告我知道了,不要显示出来了。

  但是在我们日常的工作中,很大一部分注解都是自定义的,包括很多框架中使用到的注解。

package AnnotationDemo;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(value={ElementType.METHOD,ElementType.TYPE})
@Retention(value=RetentionPolicy.RUNTIME)
public @interface AnnotationTestDemo02 {
    public String username() default "QQ";
}

  上面这行代码中,@interface自定义注解。自定义注解默认是继承自java.lang.annotation.Annotation。其中上面@Target、@Retention是元注解,也就是java本身提供的专门用于注解自定义注解的注解。

  @Target注解:表明了该注解的使用对象,主要包括以下几种:

    1、只能在Annotation中出现:public static final ElementType ANNOTATION_TYPE;

    2、只能在构造方法中出现:public static final ElementType CONSTRUCTOR;

    3、本地变量上使用:public static final ElementType LOCAL_VARIABLE;

    4、只能在方法上使用:public static final ElementType METHOD;

    5、在参数声明上使用:public static final ElementType PARAMETER;

    6、在包的声明上使用:public static final ElementType PACKAGE;

    7、只能在类或接口上使用:public static final ElementType TYPE;

  @Retention:表示注解存在的范围,会有以下几种情况

    1、public static final RetentionPolicy SOURCE :只在源码中起作用,最典型的注解就是@Override,这个覆写注解仅仅存在于源码中,为编译器使用。

    2、public static final RetentionPolicy CLASS:只在编译之后的class中起作用。

    3、public static final RetentionPolicy RUNTIME:在运行的时候起作用。

  如果一个Annotation想要起作用的话,必须使用RUNTIME范围。以下是四种元注解

    1. Documented 指示某一类型的注释将通过 javadoc 和类似的默认工具进行文档化。
    2. Inherited 指示注释类型被自动继承。
    3. Retention 指示注释类型的注释要保留多久。
    4. Target 指示注释类型所适用的程序元素的种类。

  还有一点就是注解是通过反射来实现的。

时间: 2024-10-14 13:06:35

有关于注解的相关文章

2、@RequestMapping注解的用法

@RequestMapping有如下属性值: 1.@RequestMapping来映射URL    注解 @RequestMapping 可以用在类定义处和方法定义处.    类定义处:规定初步的请求映射,相对于web应用的根目录:    方法定义处:进一步细分请求映射,相对于类定义处的URL.如果类定义处没有使用该注解,则方法标记的URL相对于根目录而言: package com.springmvc.helloworld_1; import org.springframework.stereo

Java注解(2)-注解处理器(运行时|RetentionPolicy.RUNTIME)

如果没有用来读取注解的工具,那注解将基本没有任何作用,它也不会比注释更有用.读取注解的工具叫作注解处理器.Java提供了两种方式来处理注解:第一种是利用运行时反射机制:另一种是使用Java提供的API来处理编译期的注解. 反射机制方式的注解处理器 仅当定义的注解的@Retention为RUNTIME时,才能够通过运行时的反射机制来处理注解.下面结合例子来说明这种方式的处理方法. Java中的反射API(如java.lang.Class.java.lang.reflect.Field等)都实现了接

Java注解(1)-注解基础

注解(Annotation)是在JAVA5中开始引入的,它为在代码中添加信息提供了一种新的方式.注解在一定程度上把元数据与源代码文件结合在一起,正如许多成熟的框架(Spring)所做的那样.那么,注解到底可以做什么呢? 1.注解的作用. 提供用来完整地描述程序所需要的信息,如编译期校验程序信息. 生成描述符文件,或生成新类的定义. 减轻编写"样板"代码(配置文件)的负担,可以使用注解自动生成. 更加干净易读的代码. 编译期类型检查. 2.Java提供的注解 Java5内置了一些原生的注

Java注解(3)-注解处理器(编译期|RetentionPolicy.SOURCE)

注解的处理除了可以在运行时通过反射机制处理外,还可以在编译期进行处理.在编译期处理注解时,会处理到不再产生新的源文件为止,之后再对所有源文件进行编译. Java5中提供了apt工具来进行编译期的注解处理.apt是命令行工具,与之配套的是一套描述"程序在编译时刻的静态结构"的API:Mirror API(com.sun.mirror.*).通过Mirror API可以获取到被注解的Java类型元素的信息,从而提供自定义的处理逻辑.具体的处理工具交给apt来处理.编写注解处理器的核心是两个

Spring 注解详解03

@Controller @Service @Autowired @RequestMapping @RequestParam @ModelAttribute @Cacheable @CacheFlush @resource @PostConstruct @PreDestroy @repository @component (不推荐使用) @scope @SessionAttributes @InitBinder @Required @qualifier // @Controller 例如 @Con

java注解中的元注解

一:java注解中的元注解 四个元注解分别是:@Target,@Retention,@Documented,@Inherited , 再次强调下元注解是java API提供,是专门用来定义注解的注解,其作用分别如下: @Target 表示该注解用于什么地方,可能的值在枚举类 ElemenetType 中,包括: ElemenetType.CONSTRUCTOR----------------------------构造器声明 ElemenetType.FIELD ----------------

手动添加arraylist注解类(Contact联系人对象)

因为在Java核心库不支持arraylist xml直接注解,这里可以自己写个小工具类 Contact.java: package com.newer.xml; import java.util.ArrayList; import org.simpleframework.xml.Attribute; import org.simpleframework.xml.Element; import org.simpleframework.xml.ElementList; import org.simp

Java自定义注解

自定义注解类编写的一些规则: 1. Annotation型定义为@interface, 所有的Annotation会自动继承Java.lang.Annotation这一接口,并且不能再去继承别的类或是接口. 2. 参数成员只能用public或默认(default)这两个访问权修饰 3. 参数成员只能用基本类型byte,short,char,int,long,float,double,boolean八种基本数据类型和String.Enum.Class.annotations等数据类型,以及这一些类

MyBatis应用开发(3)应用之开发方式注解方式篇

1.1. 注解方式 1.1.1. 开发步骤 目标:使用MyBatis从数据库中查询t_person表的全部记录. MyBatis还可以使用注解来配置数据库中的记录与Java对象之间的映射关系.此时SQL语句出现在Mapper接口的方法的注解中.优点是不再需要编写独立的Mapper配置文件. 使用MyBatis 的注解方式开发数据库应用的步骤如下所示: (1)编写POJO类Person. (2)编写Mapper接口PersonMapper. (3)编写业务接口PersonService. (4)编

注解方式实现声明式事务管理

使用注解实现Spring的声明式事务管理,更加简单! 步骤: 1) 必须引入Aop相关的jar文件 2) bean.xml中指定注解方式实现声明式事务管理以及应用的事务管理器类 3)在需要添加事务控制的地方,写上: @Transactional @Transactional注解: 1)应用事务的注解 2)定义到方法上: 当前方法应用spring的声明式事务 3)定义到类上:   当前类的所有的方法都应用Spring声明式事务管理; 4)定义到父类上: 当执行父类的方法时候应用事务. 修改bean