Spring MVC中存在大量的注解,@RequestMapping可方便实现路由跳转,下面我们看看注解是怎么实现的。
一. 定义注释
import java.lang.annotation.*; /** * Annotation Interface class * @author sunling3 * */ @Retention(RetentionPolicy.RUNTIME) // 注释运行时依然存在 @Target(ElementType.METHOD) // 注释用于方法 public @interface HelloAnnotation { String paramValue() default "Kettas"; // 参数及默认值 }
反编译:
public abstract @interface com/sun/annotation/HelloAnnotation implements java/lang/annotation/Annotation public abstract paramValue()Ljava/lang/String; default="Kettas"
查看字节码发现HelloAnnotation实际上是继承Annotation,paramValue为abstract类型。
二. 使用注释
public class HelloElement { // 普通方法 public void sayHello( String name ){ System.out.println( "Hello " + name ); } // 注释使用默认参数 @HelloAnnotation public void sayHelloWithDefault( String name ){ System.out.println( "Hello " + name ); } // 注释传入参数 @HelloAnnotation( paramValue="Jack") public void sayHelloWithAnnotation( String name ){ System.out.println( "Hello " + name ); } }
三. 测试
public class AnnotationTest { public static void main(String[] args) throws Exception { HelloElement element = new HelloElement(); // 反射获取方法 Method[] methods = HelloElement.class.getDeclaredMethods(); HelloAnnotation pAnnotation = null; for( Method method : methods ){ System.out.println( "Method: " + method.getName() ); // 反射获取注释 if( (pAnnotation = method.getAnnotation(HelloAnnotation.class)) != null ){ // 注释获取值 method.invoke( element, pAnnotation.paramValue() ); }else{ // 普通调用 method.invoke( element, "Sun" ); } } } }
上述代码通过反射方式获取注解值,执行结果如下:
Method: sayHelloWithDefault Hello Kettas Method: sayHelloWithAnnotation Hello Jack Method: sayHello Hello Sun
参考文章
相关推荐
JDK5.0 - Java Annotation 介绍 (ppt格式)
JAVA Annotation学习示例 的一个简单示例 有源码 也有相关博客说明
java annotation 手册.doc,java annotation 手册.doc,java annotation 手册.doc
Java Annotation注解技术
Java Annotation的讲解和例子~~~
本文针对java初学者或者annotation初次使用者全面地说明了annotation的使用方法、定义方式、分类。初学者可以通过以上的说明制作简单的annotation程序,但是对于一些高级的annotation应用(例如使用自定义annotation...
Java Annotation详解 Java Annotation详解 Java Annotation详解
struts 拦截器,扩展,以及java annotation 这个是我学习所用,放在此处,作为中转。
JavaAnnotation必须掌握的特性Java开发Java经验技巧共6页.pdf.zip
java annotation手册 关于annotation是什么东西,百度一下会有很多关于它的描述,在这里就不用再copy了,我们还是以一个示例开始吧,在开始示例之前,我们先来一个小故事。
Java Annotation入门,本文初步告诉你怎么使用java anotatin
NULL 博文链接:https://xing-kenny.iteye.com/blog/1338865
如果你想知道java annotation是什么?你可以看看
java annotation 从JDK5.0后提供的功能。里面包含的实例,我是为了学习这个,所以放到这个上面作为中转。从别人博客里面摘取,博客地址里面附有。
javaAnnotation.pdf
Java Annotation学习整理
JavaAnnotation实例.docx