`
程序新手
  • 浏览: 59803 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 自定义Annotation步骤

阅读更多

 

  1)自定义Annotation接口,如下所示

 

@Retention(RetentionPolicy.RUNTIME) 
@Target(ElementType.METHOD)
public @interface MyAnnotation {
	String name()    default "[defaultMethod]";
}

 

  其中RetentionPolicy表示指定保留多长的注释,其取值范围为

 

CLASS
          编译器将把注释记录在类文件中,但在运行时 VM 不需要保留注释。
RUNTIME
          编译器将把注释记录在类文件中,在运行时 VM 将保留注释,因此可以反射性地读取。
SOURCE
          编译器要丢弃的注释。

 

  ElementType代表什么情况下使用注释类型是合法的

 

ANNOTATION_TYPE
          注释类型声明
CONSTRUCTOR
          构造方法声明
FIELD
          字段声明(包括枚举常量)
LOCAL_VARIABLE
          局部变量声明
METHOD
          方法声明
PACKAGE
          包声明
PARAMETER
          参数声明
TYPE
          类、接口(包括注释类型)或枚举声明

 

(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方法,具体可以根据业务需要去写

2
0
分享到:
评论

相关推荐

    java 自定义注解验证

    在本案例中,作者创建了三个自定义注解,具体细节虽未详述,但我们可以深入探讨一下Java自定义注解的基本概念、创建过程以及如何进行验证。 首先,我们需要理解Java注解的基本原理。注解是一种元数据,它提供了一种...

    自定义annotationProcessor

    通过以上步骤,你的自定义`annotationProcessor`将在编译时自动运行,根据你在源代码中使用的注解生成相应的Java类。这种编译时代码生成的能力极大地增强了Java的灵活性和可扩展性,是现代Java开发中的重要工具之一...

    实现java自定义注解拦截器.docx

    ### 实现Java自定义注解拦截器 #### 概述 本文主要介绍如何在Spring Boot项目中使用自定义注解来实现对特定方法的拦截功能。具体场景为:当访问项目中的控制器方法时,需要进行“token验证”,但登录等特殊方法...

    2个案例 自定义annotation进行查询对象封装 itext 打印案例

    标题中的“自定义annotation进行查询对象封装”涉及的是在编程中使用注解(Annotation)来增强代码的功能,特别是在数据查询和对象映射方面。注解是一种元数据,它提供了将信息附加到代码(如类、方法或变量)的方式...

    java1.5 annotation注释源代码

    创建自定义注解通常涉及以下步骤: 1. 使用`@interface`关键字定义注解。 2. 定义注解的元素,指定元素的类型和默认值(如果需要)。 3. 在需要的地方使用自定义注解。 4. 实现处理程序来处理带有该注解的代码。 ...

    重难点之JavaAnnotation手册.pdf

    在Java 6.0及更高版本中,javac编译器已经支持自定义Annotation的处理。 三、Annotation的使用和处理 - Annotation的处理通常涉及到两个主要步骤:定义和解析。定义是创建Annotation类型,解析是通过Java反射API...

    Java实战篇:设计自己的Annotation

    本文将重点介绍Java 1.5及以后版本中内置的三种常用注解类型及其应用方式,并进一步探讨如何自定义Annotation。 **1.1 @Override 注解** - **定义**:`@Override`注解用于标记重写(override)父类的方法。它只...

    java自定义注解\标签库\监听\junit简单测试

    Java自定义注解是Java平台提供的一种元编程机制,它允许程序员在源代码中的任何元素(类、方法、变量等)上添加元数据。自定义注解可以被编译器或者运行时系统用来执行特定的任务,例如代码分析、性能监控、持久化...

    使用Java自定义注解模拟实现SpringBoot相关注解.zip

    本教程将探讨如何使用Java自定义注解来模拟实现这些SpringBoot相关的注解功能。 首先,我们来看`@Autowired`注解。`@Autowired`是Spring框架中的一个关键注解,用于自动装配bean。当我们想在类中注入某个依赖时,而...

    java自定义实现验证码功能

    以上就是使用Java Servlet自定义实现验证码功能的主要步骤。在实际应用中,为了提高安全性,还可以考虑增加以下优化措施: - 增加字母和数字的混淆,如斜体、旋转、扭曲等。 - 添加时间戳或会话ID,限制验证码的...

    java-annotation-processor:JAVA注释处理器

    Java注释处理器(Annotation Processor)是Java平台提供的一种机制,用于在编译期间对源代码进行分析、修改或生成新的源代码。这个机制基于Java的注解(Annotation),注解是一种元数据,它提供了在代码中附加信息的...

    springboot工程自定义response注解、自定义规范化返回数据结构

    总结,通过以上步骤,我们可以实现在Spring Boot工程中对返回数据结构的自定义,确保每个API返回的数据都遵循一致的格式。这提高了API的可读性和易用性,也方便了前后端交互。在实际项目中,可以根据需求进一步定制...

    Gradle中如何自定义实现Java注解处理器

    通过这个过程,我们可以了解到在Gradle中自定义实现Java注解处理器的基本步骤,以及如何在项目中配置和使用它们。这为我们的代码提供了强大的元数据支持,使我们可以编写更加灵活和可维护的系统。

    自定义注解实现拦截sql.rar

    以上就是利用自定义注解实现SQL拦截的基本原理和步骤,这个技术在处理复杂业务逻辑或者权限控制时非常有用,但同时也需要注意其潜在的风险和挑战。在实际项目中,应根据需求和项目规模合理使用。

    JavaPoet+Annotation实现android动态权限申请.7z

    在这个过程中,JavaPoet和Annotation的结合可以大大简化代码编写,提高效率。本文将深入探讨如何使用JavaPoet和Annotation来实现Android动态权限申请。 首先,让我们了解JavaPoet。JavaPoet是一个由Square公司开源...

    java(spring boot)自定义注解

    创建自定义注解通常包括以下步骤: 1. 定义注解:使用`@interface`关键字来创建一个新的注解类型,如`@MyMonitor`,并可以包含一些元素(也称为属性)。 ```java @Retention(RetentionPolicy.RUNTIME) @Target...

    Spring 自定义注解的解析

    本文将深入探讨如何在Spring环境中通过`component-scan`配置来处理自定义Java注解。 首先,让我们了解什么是自定义注解。在Java中,注解是一种元数据,可以提供有关代码的信息,但不直接影响代码的执行。自定义注解...

    自定义注解bindview.zip

    我们可以创建一个实现了`java.lang.annotation.AnnotationProcessor`接口的类,或者使用Butter Knife、Dagger等库,它们已经提供了类似的处理机制。这里我们简要介绍Butter Knife库,它是一个流行的视图绑定库,它的...

    annotationProcessor实例demo

    在Java开发中,`AnnotationProcessor` 是一个强大的工具,它允许开发者在编译期间自动处理源代码,根据注解(Annotation)生成额外的类或修改已有类。这个过程被称为注解处理,是Java编译器的一部分,可以在不需人工...

Global site tag (gtag.js) - Google Analytics