自定义注解 @interface

http://www.open-open.com/lib/view/open1353144218545.html

是spring AOP思想的重要体现。

注解是代码的附属信息,它遵循一个基本原则:注解不能直接干扰程序代码的运行,无论增加或删除注解,代码都能够正常运行。

Java语言解释器会忽略这些注解,而由第三方工具负责对注解进行处理。第三方工具可以利用代码中的注解间接控制程序代码的运行,它们通过Java反射机制读取注解的信息,并根据这些信息更改目标程序的逻辑,而这正是Spring AOP对@AspectJ提供支持所采取的方法。

注解定义包含四个元注解,分别为@Target,@Retention,@Documented,@Inherited。

@Target ElemenetType.TYPE 类,接口(包括注解类型)或enum声明。
 @Retention RetentionPolicy.RUNTIME VM将在运行期也保留注释,因此可以通过反射机制读取注解的信息。

@Description(value="使用注解的实例")

public class TestAnnotation {

}

public class ParseAnnotation {
 
 public static void main(String[] args) throws Exception{
  final Class cls = Class.forName("com.annotation.TestAnnotation");
  final Method[] method = cls.getMethods();
  
  // 判断是否有指定注解类型的注解
  if(cls.isAnnotationPresent(Description.class)) {
   // 根据注解类型返回指定类型的注解
   Description des = (Description)cls.getAnnotation(Description.class);类.get其注解;
   System.out.println("注解描述:" + des.value());
  }
 }
}
输出结果如下: 注解描述:使用注解的实例


 
 
 
发布了28 篇原创文章 · 获赞 5 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/java_utf8/article/details/70142845