1)自定义Annotation接口,如下所示
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyAnnotation {
String name() default "[defaultMethod]";
}
其中RetentionPolicy表示指定保留多长的注释,其取值范围为
CLASS 编译器将把注释记录在类文件中,但在运行时 VM 不需要保留注释。 |
RUNTIME 编译器将把注释记录在类文件中,在运行时 VM 将保留注释,因此可以反射性地读取。 |
SOURCE 编译器要丢弃的注释。 |
ElementType代表什么情况下使用注释类型是合法的
(2)自定义类,在类中调用使用自定义注解
public class MyNameClass {
@MyAnnotation(name="test1")
public void testOne(){
System.out.println("testOne");
}
@MyAnnotation(name="test2")
public void testTwo(){
System.out.println("testTwo");
}
@MyAnnotation(name="test3")
public void testThree(){
System.out.println("testThree");
}
}
(3)主方法,在主方法中通过反射调用此类
public class TestMain {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
Object obj = Class.forName("com.test.annotation.MyNameClass").newInstance();
for (Method m : obj.getClass().getMethods()) {
if (m.isAnnotationPresent(MyAnnotation.class)) {
try {
System.out.println(m.getAnnotation(MyAnnotation.class).name());
//TODO 在业务中需要添加的功能,如登录验证、缓存等等等等
m.invoke(obj);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
}
}
我们在实际开发中可以通过Spring框架完成拦截,自定义类继承MethodInterceptor类,重载invoke方法,具体可以根据业务需要去写
分享到:
相关推荐
在本案例中,作者创建了三个自定义注解,具体细节虽未详述,但我们可以深入探讨一下Java自定义注解的基本概念、创建过程以及如何进行验证。 首先,我们需要理解Java注解的基本原理。注解是一种元数据,它提供了一种...
通过以上步骤,你的自定义`annotationProcessor`将在编译时自动运行,根据你在源代码中使用的注解生成相应的Java类。这种编译时代码生成的能力极大地增强了Java的灵活性和可扩展性,是现代Java开发中的重要工具之一...
### 实现Java自定义注解拦截器 #### 概述 本文主要介绍如何在Spring Boot项目中使用自定义注解来实现对特定方法的拦截功能。具体场景为:当访问项目中的控制器方法时,需要进行“token验证”,但登录等特殊方法...
标题中的“自定义annotation进行查询对象封装”涉及的是在编程中使用注解(Annotation)来增强代码的功能,特别是在数据查询和对象映射方面。注解是一种元数据,它提供了将信息附加到代码(如类、方法或变量)的方式...
创建自定义注解通常涉及以下步骤: 1. 使用`@interface`关键字定义注解。 2. 定义注解的元素,指定元素的类型和默认值(如果需要)。 3. 在需要的地方使用自定义注解。 4. 实现处理程序来处理带有该注解的代码。 ...
在Java 6.0及更高版本中,javac编译器已经支持自定义Annotation的处理。 三、Annotation的使用和处理 - Annotation的处理通常涉及到两个主要步骤:定义和解析。定义是创建Annotation类型,解析是通过Java反射API...
本文将重点介绍Java 1.5及以后版本中内置的三种常用注解类型及其应用方式,并进一步探讨如何自定义Annotation。 **1.1 @Override 注解** - **定义**:`@Override`注解用于标记重写(override)父类的方法。它只...
Java自定义注解是Java平台提供的一种元编程机制,它允许程序员在源代码中的任何元素(类、方法、变量等)上添加元数据。自定义注解可以被编译器或者运行时系统用来执行特定的任务,例如代码分析、性能监控、持久化...
本教程将探讨如何使用Java自定义注解来模拟实现这些SpringBoot相关的注解功能。 首先,我们来看`@Autowired`注解。`@Autowired`是Spring框架中的一个关键注解,用于自动装配bean。当我们想在类中注入某个依赖时,而...
以上就是使用Java Servlet自定义实现验证码功能的主要步骤。在实际应用中,为了提高安全性,还可以考虑增加以下优化措施: - 增加字母和数字的混淆,如斜体、旋转、扭曲等。 - 添加时间戳或会话ID,限制验证码的...
Java注释处理器(Annotation Processor)是Java平台提供的一种机制,用于在编译期间对源代码进行分析、修改或生成新的源代码。这个机制基于Java的注解(Annotation),注解是一种元数据,它提供了在代码中附加信息的...
总结,通过以上步骤,我们可以实现在Spring Boot工程中对返回数据结构的自定义,确保每个API返回的数据都遵循一致的格式。这提高了API的可读性和易用性,也方便了前后端交互。在实际项目中,可以根据需求进一步定制...
通过这个过程,我们可以了解到在Gradle中自定义实现Java注解处理器的基本步骤,以及如何在项目中配置和使用它们。这为我们的代码提供了强大的元数据支持,使我们可以编写更加灵活和可维护的系统。
以上就是利用自定义注解实现SQL拦截的基本原理和步骤,这个技术在处理复杂业务逻辑或者权限控制时非常有用,但同时也需要注意其潜在的风险和挑战。在实际项目中,应根据需求和项目规模合理使用。
在这个过程中,JavaPoet和Annotation的结合可以大大简化代码编写,提高效率。本文将深入探讨如何使用JavaPoet和Annotation来实现Android动态权限申请。 首先,让我们了解JavaPoet。JavaPoet是一个由Square公司开源...
创建自定义注解通常包括以下步骤: 1. 定义注解:使用`@interface`关键字来创建一个新的注解类型,如`@MyMonitor`,并可以包含一些元素(也称为属性)。 ```java @Retention(RetentionPolicy.RUNTIME) @Target...
本文将深入探讨如何在Spring环境中通过`component-scan`配置来处理自定义Java注解。 首先,让我们了解什么是自定义注解。在Java中,注解是一种元数据,可以提供有关代码的信息,但不直接影响代码的执行。自定义注解...
我们可以创建一个实现了`java.lang.annotation.AnnotationProcessor`接口的类,或者使用Butter Knife、Dagger等库,它们已经提供了类似的处理机制。这里我们简要介绍Butter Knife库,它是一个流行的视图绑定库,它的...
在Java开发中,`AnnotationProcessor` 是一个强大的工具,它允许开发者在编译期间自动处理源代码,根据注解(Annotation)生成额外的类或修改已有类。这个过程被称为注解处理,是Java编译器的一部分,可以在不需人工...