java注解spring注解详解

上传人:xiao****1972 文档编号:84822392 上传时间:2019-03-05 格式:DOC 页数:51 大小:276.50KB
返回 下载 相关 举报
java注解spring注解详解_第1页
第1页 / 共51页
java注解spring注解详解_第2页
第2页 / 共51页
java注解spring注解详解_第3页
第3页 / 共51页
java注解spring注解详解_第4页
第4页 / 共51页
java注解spring注解详解_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《java注解spring注解详解》由会员分享,可在线阅读,更多相关《java注解spring注解详解(51页珍藏版)》请在金锄头文库上搜索。

1、基本内置注解Override java中覆写Deprecated的作用是对不应该在使用的方法添加注释,当编程人员使用这些方法时,将会在编译时显示提示信息,它与javadoc里的deprecated标记有相同的功能,准确的说,它还不如javadoc deprecated,因为它不支持参数SuppressWarnings,其参数有:deprecation,使用了过时的类或方法时的警告unchecked,执行了未检查的转换时的警告fallthrough,当 Switch 程序块直接通往下一种情况而没有 Break 时的警告path,在类路径、源文件路径等中有不存在的路径时的警告serial,当在可序

2、列化的类上缺少 serialVersionUID 定义时的警告 finally ,任何 finally 子句不能正常完成时的警告all,关于以上所有情况的警告自定义注释它类似于新创建一个接口类文件,但为了区分,我们需要将它声明为interface,如:public interface NewAnnotation .java中的注解机制2010-04-22 12:42注解(Annotation) 为我们在代码中天界信息提供了一种形式化的方法,是我们可以在稍后某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据)。 注解的语法比较简单,除了符号的使用以外,它基本上与java的固有语法一致,j

3、ava内置了三种注解,定义在java.lang包中。 Override 表示当前方法是覆盖父类的方法。 Deprecated 表示当前元素是不赞成使用的。 SuppressWarnings 表示关闭一些不当的编译器警告信息。下面是一个定义注解的实例Java代码 package Test_annotation; import java.lang.annotation.Documented; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotatio

4、n.Target; import java.lang.annotation.ElementType; import java.lang.annotation.RetentionPolicy; /* * 元注解Target,Retention,Documented,Inherited * * Target 表示该注解用于什么地方,可能的 ElemenetType 参数包括: * ElemenetType.CONSTRUCTOR 构造器声明 * ElemenetType.FIELD 域声明(包括 enum 实例) * ElemenetType.LOCAL_VARIABLE 局部变量声明 * Ele

5、menetType.METHOD 方法声明 * ElemenetType.PACKAGE 包声明 * ElemenetType.PARAMETER 参数声明 * ElemenetType.TYPE 类,接口(包括注解类型)或enum声明 * * Retention 表示在什么级别保存该注解信息。可选的 RetentionPolicy 参数包括: * RetentionPolicy.SOURCE 注解将被编译器丢弃 * RetentionPolicy.CLASS 注解在class文件中可用,但会被VM丢弃 * RetentionPolicy.RUNTIME VM将在运行期也保留注释,因此可以通过

6、反射机制读取注解的信息。 * * Documented 将此注解包含在 javadoc 中 * * Inherited 允许子类继承父类中的注解 * */ Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) Documented Inherited /* * 定义注解 Test * 注解中含有两个元素 id 和 description * description 元素 有默认值 no description */ public interface Test public int id(); public String de

7、scription() default no description; package Test_annotation;import java.lang.annotation.Documented;import java.lang.annotation.Inherited;import java.lang.annotation.Retention;import java.lang.annotation.Target;import java.lang.annotation.ElementType;import java.lang.annotation.RetentionPolicy;/* 元注解

8、Target,Retention,Documented,Inherited* * Target 表示该注解用于什么地方,可能的 ElemenetType 参数包括:* ElemenetType.CONSTRUCTOR 构造器声明* ElemenetType.FIELD 域声明(包括 enum 实例)* ElemenetType.LOCAL_VARIABLE 局部变量声明* ElemenetType.METHOD 方法声明* ElemenetType.PACKAGE 包声明* ElemenetType.PARAMETER 参数声明* ElemenetType.TYPE 类,接口(包括注解类型)或

9、enum声明* * Retention 表示在什么级别保存该注解信息。可选的 RetentionPolicy 参数包括:* RetentionPolicy.SOURCE 注解将被编译器丢弃* RetentionPolicy.CLASS 注解在class文件中可用,但会被VM丢弃* RetentionPolicy.RUNTIME VM将在运行期也保留注释,因此可以通过反射机制读取注解的信息。* * Documented 将此注解包含在 javadoc 中* * Inherited 允许子类继承父类中的注解* */Target(ElementType.METHOD)Retention(Retent

10、ionPolicy.RUNTIME)DocumentedInherited/* 定义注解 Test* 注解中含有两个元素 id 和 description* description 元素 有默认值 no description*/public interface Test public int id();public String description() default no description;下面是一个使用注解 和 解析注解的实例Java代码 package Test_annotation; import java.lang.reflect.Method; public class

11、 Test_1 /* * 被注解的三个方法 */ Test(id = 1, description = hello method_1) public void method_1() Test(id = 2) public void method_2() Test(id = 3, description = last method) public void method_3() /* * 解析注解,将Test_1类 所有被注解方法 的信息打印出来 */ public static void main(String args) Method methods = Test_1.class.getDe

12、claredMethods(); for (Method method : methods) /* * 判断方法中是否有指定注解类型的注解 */ boolean hasAnnotation = method.isAnnotationPresent(Test.class); if (hasAnnotation) /* * 根据注解类型返回方法的指定类型注解 */ Test annotation = method.getAnnotation(Test.class); System.out.println(Test( method = + method.getName() + , id = + annotation.id() + , description = + annotation.description() + ); package Test_annotation;import java.lang.reflect.Method;public class Test_1 /* 被注解的三个方法*/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号