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
分享到:
相关推荐
Annotation 以 "name=value" 结构对的形式存储,可以通过 Java 反射API访问。 1. Annotation 的定义和类型: - Annotation 是一种声明在程序元素上的标记,类似于修饰符,如 `@Override` 或 `@Deprecated`。每个 ...
Java 注解(Annotation)是Java语言中的一个重要特性,它为程序元素提供了附加信息,这些信息可以用于编译器检查、代码分析、运行时处理等多种用途。注解在代码中类似于修饰符,可以应用于包、类、接口、方法、字段、...
其中,Annotation(注解)系统是Java 5.0的一个核心新特性,它为元数据提供了强大的支持,使得编译器、JVM以及各种工具能够更加智能地处理代码。 一、什么是注解 注解是一种在源代码中添加元数据的方式,它允许...
注解(Annotation)是Java中的元数据,它为编译器和JVM提供了有关代码的附加信息。注解可以用于代码的编译时检查、运行时处理、文档生成等。常见的注解有@Override、@Deprecated、@SuppressWarnings等,还可以自定义...
Java注解是Java编程语言中的一个重要特性,它允许程序员在代码中嵌入元...对于深入学习,建议阅读Java官方文档以及相关的开源项目,如本教程提供的`java-custom-annotation-master`,以获得更丰富的实践经验和理解。
Java反射和注解是Java编程语言中的两个强大特性,它们为开发者提供了深入程序运行时行为的能力,以及在编译期和运行期增加元数据的功能。本文将深入探讨这两个概念,帮助你更好地理解和利用它们。 首先,让我们从...
在《Java Annotation入门》之后的这篇《重难点之JavaAnnotation手册》中,作者深入探讨了Annotation的概念、定义以及其在Java开发中的应用。 一、Annotation是什么? Annotation是一种在代码中添加的特殊注解,用于...
7. **反射API**:反射允许在运行时动态获取类的信息,创建和调用对象。它是实现元编程和插件系统的基础。 8. **JDBC**:Java Database Connectivity用于连接和操作数据库。掌握Statement、PreparedStatement、...
Java 5引入的注解(Annotation)是一种元数据,它提供了在代码中嵌入信息的方式,这些信息可以被编译器、JVM或其他工具在编译时或运行时使用。注解可以用来简化代码,提高可维护性,并帮助工具进行静态分析。 1. ...
2. 运行时反射:通过反射API,可以在运行时获取类、方法上的注解信息,执行相应的逻辑。 ```java public class AnnotationDemo { public static void main(String[] args) { Method method = MyProgram.class....
反射机制进行实现,通过简单的注解方式实现灵活的依赖注入。 2、优点 JBeic-Annotation-Inject依赖注入主要有两个好处: (1) 解耦,将依赖之间解耦。 (2) 方便做单元测试。 (3) 依赖的类无需实现对依赖的类...
5. **注解(Annotation)**:源码可能包含自定义注解和元注解的使用,以及如何通过反射处理注解信息。 6. **异常处理**:高级的异常处理策略,如链式异常、自定义异常和finally块的合理使用。 7. **设计模式**:可能...
Java Annotation 是 JDK5.0 引入的一种元数据机制,它允许程序员在代码中嵌入额外的信息,这些信息可以被编译器、构建工具或运行时系统用来执行特定的任务。Annotation 提供了一种安全、灵活的方式来描述代码的属性...
注释(Annotation)是Java提供的一种元数据,用于向编译器或JVM提供关于代码的额外信息。注释可以用于配置、编译时检查、运行时处理等。Java提供了预定义的注释类型,如@Override、@Deprecated,同时也允许用户...
### Java Annotation 概述与应用 #### 一、Java Annotation 的定义及作用 Java Annotation(注解)是自 Java 5.0 开始引入的一种语言元素,它为开发者提供了在代码中添加元数据的能力。简单来说,注解就像是对代码...
5. 注解(Annotation):`Annotation`是Java提供的一种元数据,用于向编译器或JVM提供关于代码的附加信息。`getAnnotations()`和`getDeclaredAnnotations()`方法用于获取类、方法或字段上的注解。 在实际应用中,...
Java注解(Annotation)是Java语言的一个重要特性,它为元数据提供了强大的支持。元数据是一种描述数据的数据,可以提供有关代码的附加信息,而这些信息并不直接影响代码的执行。在Java中,注解用于向编译器、JVM或...
Annotation 是一个接口,程序可以通过反射来获取指定程序中元素的 Annotation 对象,然后通过该 Annotation 对象来获取注解中的元数据信息。 在 Java 中,Annotation 可以被用于提供元数据信息,例如:作者、版本号...
Java annotation 什么是java annotation?annotation 的7种标注类型。nnotation提供了一条与程序元素关联任何信息或者任何元数据(metadata...annotation类型是一种接口,能够通过java反射API的方式提供对其信息的访问。