`

java-Annotation 反射

阅读更多
java中的注解也可以反射

切面注解:
@Aspect
public class LogAspect {
	
	@Around(value = "@annotation(com.gym.Monitor)",argNames = "ssss")
     public Object log(ProceedingJoinPoint pjp) throws Throwable{
    	 System.out.println("BEGIN-------------------" +pjp+"-------------------");
    	 Object obj =  pjp.proceed();
    	 System.out.println("END-------------------" +pjp+"-------------------"+obj);
    	 return obj;
     }
}



测试:
@Test
	public void testAspectJAnnotation() throws Exception{
		LogAspect la = new LogAspect();
		Method method = la.getClass().getMethod("log", ProceedingJoinPoint.class);
		
		Annotation annotation = method.getAnnotation(Around.class);
		
		String s = resolveExpression(annotation);
		System.out.println(s);
		Object obj = annotation.getClass().getMethod("argNames").invoke(annotation);
		System.out.println(obj);
	}

	
	
	private String resolveExpression(Annotation annotation) throws Exception {
		String[] EXPRESSION_PROPERTIES = new String[] {"value", "pointcut"};
		String expression = null;
		for (String methodName : EXPRESSION_PROPERTIES) {
			Method method;
			try {
				method = annotation.getClass().getDeclaredMethod(methodName);
			}
			catch (NoSuchMethodException ex) {
				method = null;
			}
			if (method != null) {
				String candidate = (String) method.invoke(annotation);
				if (StringUtils.hasText(candidate)) {
					expression = candidate;
				}
			}
		}
		return expression;
	}


输出:
@annotation(com.gym.Monitor)
ssss
分享到:
评论

相关推荐

    Java-Annotation手册.docx

    Annotation 以 "name=value" 结构对的形式存储,可以通过 Java 反射API访问。 1. Annotation 的定义和类型: - Annotation 是一种声明在程序元素上的标记,类似于修饰符,如 `@Override` 或 `@Deprecated`。每个 ...

    Java-Annotation使用大全.doc

    Java 注解(Annotation)是Java语言中的一个重要特性,它为程序元素提供了附加信息,这些信息可以用于编译器检查、代码分析、运行时处理等多种用途。注解在代码中类似于修饰符,可以应用于包、类、接口、方法、字段、...

    java5.0新特性总结--Annotation系统学习整理笔记

    其中,Annotation(注解)系统是Java 5.0的一个核心新特性,它为元数据提供了强大的支持,使得编译器、JVM以及各种工具能够更加智能地处理代码。 一、什么是注解 注解是一种在源代码中添加元数据的方式,它允许...

    JAVA设计模式--程序设计--反射--注解--泛型

    注解(Annotation)是Java中的元数据,它为编译器和JVM提供了有关代码的附加信息。注解可以用于代码的编译时检查、运行时处理、文档生成等。常见的注解有@Override、@Deprecated、@SuppressWarnings等,还可以自定义...

    java注解源码-java-custom-annotation:教程的源代码如何创建自定义Java批注

    Java注解是Java编程语言中的一个重要特性,它允许程序员在代码中嵌入元...对于深入学习,建议阅读Java官方文档以及相关的开源项目,如本教程提供的`java-custom-annotation-master`,以获得更丰富的实践经验和理解。

    java-reflection-annotation-test:探索java反射和注解之美

    Java反射和注解是Java编程语言中的两个强大特性,它们为开发者提供了深入程序运行时行为的能力,以及在编译期和运行期增加元数据的功能。本文将深入探讨这两个概念,帮助你更好地理解和利用它们。 首先,让我们从...

    重难点之JavaAnnotation手册.pdf

    在《Java Annotation入门》之后的这篇《重难点之JavaAnnotation手册》中,作者深入探讨了Annotation的概念、定义以及其在Java开发中的应用。 一、Annotation是什么? Annotation是一种在代码中添加的特殊注解,用于...

    learn-java-master_java_知识点_

    7. **反射API**:反射允许在运行时动态获取类的信息,创建和调用对象。它是实现元编程和插件系统的基础。 8. **JDBC**:Java Database Connectivity用于连接和操作数据库。掌握Statement、PreparedStatement、...

    Java 5 annotation 学习笔记

    Java 5引入的注解(Annotation)是一种元数据,它提供了在代码中嵌入信息的方式,这些信息可以被编译器、JVM或其他工具在编译时或运行时使用。注解可以用来简化代码,提高可维护性,并帮助工具进行静态分析。 1. ...

    java-annotation:Java注解入门教程

    2. 运行时反射:通过反射API,可以在运行时获取类、方法上的注解信息,执行相应的逻辑。 ```java public class AnnotationDemo { public static void main(String[] args) { Method method = MyProgram.class....

    jbeic-Annotation-Inject:注解进行依赖注入

    反射机制进行实现,通过简单的注解方式实现灵活的依赖注入。 2、优点 JBeic-Annotation-Inject依赖注入主要有两个好处: (1)   解耦,将依赖之间解耦。 (2)   方便做单元测试。 (3)  依赖的类无需实现对依赖的类...

    java72-java-advance源代码.zip

    5. **注解(Annotation)**:源码可能包含自定义注解和元注解的使用,以及如何通过反射处理注解信息。 6. **异常处理**:高级的异常处理策略,如链式异常、自定义异常和finally块的合理使用。 7. **设计模式**:可能...

    JDK5.0 Java Annotation 介绍(ppt)

    Java Annotation 是 JDK5.0 引入的一种元数据机制,它允许程序员在代码中嵌入额外的信息,这些信息可以被编译器、构建工具或运行时系统用来执行特定的任务。Annotation 提供了一种安全、灵活的方式来描述代码的属性...

    第-章-JAVA反射和注释优秀文档.pptx

    注释(Annotation)是Java提供的一种元数据,用于向编译器或JVM提供关于代码的额外信息。注释可以用于配置、编译时检查、运行时处理等。Java提供了预定义的注释类型,如@Override、@Deprecated,同时也允许用户...

    Java Annotation

    ### Java Annotation 概述与应用 #### 一、Java Annotation 的定义及作用 Java Annotation(注解)是自 Java 5.0 开始引入的一种语言元素,它为开发者提供了在代码中添加元数据的能力。简单来说,注解就像是对代码...

    底层的技术-----反射技术

    5. 注解(Annotation):`Annotation`是Java提供的一种元数据,用于向编译器或JVM提供关于代码的附加信息。`getAnnotations()`和`getDeclaredAnnotations()`方法用于获取类、方法或字段上的注解。 在实际应用中,...

    java之Annotation及其应用

    Java注解(Annotation)是Java语言的一个重要特性,它为元数据提供了强大的支持。元数据是一种描述数据的数据,可以提供有关代码的附加信息,而这些信息并不直接影响代码的执行。在Java中,注解用于向编译器、JVM或...

    02-Java注解面试题(2题)-新增.pdf

    Annotation 是一个接口,程序可以通过反射来获取指定程序中元素的 Annotation 对象,然后通过该 Annotation 对象来获取注解中的元数据信息。 在 Java 中,Annotation 可以被用于提供元数据信息,例如:作者、版本号...

    JAVA 标注annotation

    Java annotation 什么是java annotation?annotation 的7种标注类型。nnotation提供了一条与程序元素关联任何信息或者任何元数据(metadata...annotation类型是一种接口,能够通过java反射API的方式提供对其信息的访问。

Global site tag (gtag.js) - Google Analytics