`

Java注解的理解

    博客分类:
  • java
阅读更多

这两天想搭一个纯粹使用注解的ssm框架,于是就看了看mybatis注解的使用方式,但是感觉java中底层注解平时不常使用都忘得差不多了,于是就重新看了一遍.
这里简单记录下1.Java中开发自定义注解类,2.自定义注解类的使用,3.自定义注解类的解析

一.自定义注解类开发

 

package com.star.frame.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;


@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Name {
  String id () default "1";
  String value() default "";
  int len() default 100;
  String[] properties() default {"p1","p2"};
  Class<? extends Object> type() default String.class;
}

 

 

理解:1.注解类与接口相似,里面只能定义静态常量和抽象方法;它与接口,枚举,类属于同一层次,都被称作一种类型。

          2.java底层中提供的注解有两种:(1)常用的基本注解:@SuppressWarnings,@Deprecated,@Override(2)元注解:@Retention,@Target

          3.注解类的使用范围由@Retention决定,分三种:

RetentionPolicy.SOURCE:指定注解只保留在源文件当中,编译成类文件后就把注解去掉。

RetentionPolicy.CLASS:指定注解只保留在源文件和编译后 class 文件中,当jvm加载类时就把注解去掉。

RetentionPolicy.RUNTIME:指定注解可以保留在jvm中,这样就可以使用反射获取信息了。

默认保留在类中文件中,所以使用时一般要指定保存到RetentionPolicy.RUNTIME中

  4.可以使用注解的元素类型由@Target决定,分为以下几种:

ElementType.TYPE:说明该注解只能被声明在一个类前。

ElementType.FIELD:说明该注解只能被声明在一个类的字段前。

ElementType.METHOD:说明该注解只能被声明在一个类的方法前。

ElementType.PARAMETER:说明该注解只能被声明在一个方法参数前。

ElementType.CONSTRUCTOR:说明该注解只能声明在一个类的构造方法前。

ElementType.LOCAL_VARIABLE:说明该注解只能声明在一个局部变量前。

ElementType.ANNOTATION_TYPE:说明该注解只能声明在一个注解类型前。

ElementType.PACKAGE:说明该注解只能声明在一个包名前

不写则默认可以使用于所有元素类型。

二.自定义注解类的使用

package com.star.frame.annotation;

public class Use {

	@Name(id="name1",len=50,properties={"a","b"},value="test")
	public boolean getName(String id,int len ,String[] properties,String value){
		System.out.println(id);
		System.out.println(len);
		System.out.println(properties[0]+properties[1]);
		System.out.println(value);
		return true;
	}
}

 理解:注解的使用方法:

        1.@注解名:一般使用于有默认值的注解

        2.@注解名(方法名=方法返回值) :使用于没有默认值的注解,此时必须制定值

        3.@注解名(方法名=方法返回值,方法名={返回值1,返回值2}) :使用于方法返回数组类型的注解

        4.@注解名(返回值) :使用于只有value方法的注解,可以只写返回值

 

三.自定义注解类的解析

public class Parse {

	public void parseMethod(Class clzz) throws Exception{
		Object o = clzz.getConstructor(new Class[]{}).newInstance(new Object[]{});
		Method[] methods = clzz.getDeclaredMethods();
		for (Method method : methods) {
			Name nameClzz = method.getAnnotation(Name.class);
			if(nameClzz != null){
				String id = nameClzz.id();
				String value = nameClzz.value();
				int len = nameClzz.len();
				String[] props = nameClzz.properties();
				Class< ? extends Object> clz = nameClzz.type();
				method.invoke(o,id,len,props,value);
			}
		}
		
	}
	
}

 理解:当解析注解的时候,一般通过getAnnotation 或 getAnnotations 来获取类,方法,属性的注解类。从而使用反射进行处理

 

以上就是对于java注解使用方法的简单总结,此中有些理解的用法是参考一些博客总结出来的,作为自己的积累使用。

 

 

 

 

分享到:
评论

相关推荐

    java注解深入理解

    Java注解是Java编程语言中的一个重要特性,它提供了一种元数据的方式,允许程序员在代码中插入额外的信息,这些信息可以被编译器或者运行时环境用来执行特定的任务。注解在现代Java开发中扮演了不可或缺的角色,尤其...

    java注解大全(非常全面)

    Java注解是Java编程语言中的...学习Java注解需要理解其原理,熟悉各个框架的注解规范,并通过实践来加深理解。这份"java注解大全"资料将引导你全面掌握这一强大的工具,无论是在日常开发还是面试准备中,都将大有裨益。

    Java 注解技术视频详解

    首先,我们来理解什么是Java注解。注解在Java中是一种特殊的声明,它的主要目的是提供元数据,即关于代码的数据。这些元数据不直接影响程序的执行,但可以被编译器或运行时环境用来进行验证、优化、生成代码、配置...

    JAVA 注解示例 详解

    在实际开发中,理解并熟练运用Java注解能够提高代码的可读性,减少错误,并简化许多自动化任务。通过合理地创建和使用注解,我们可以让代码更易于维护,同时也为工具和框架提供更多的灵活性和扩展性。因此,学习和...

    java 自定义注解验证

    首先,我们需要理解Java注解的基本原理。注解是一种元数据,它提供了一种安全的方法来将信息附加到代码中,而不直接影响代码的执行。Java提供了内置的注解,如`@Override`、`@Deprecated`等,但自定义注解允许我们...

    java注解jar包

    首先,我们要理解什么是Java注解(Annotation)。Java注解是一种在源代码中插入特殊声明的方式,这些声明不会改变程序的行为,但可以提供额外的信息,例如文档信息、编译时检查或运行时处理。Java标准库中包含了一些...

    Java自定义注解实例

    ### 一、Java注解概述 1. **定义**: 注解是一种声明式的编程元素,以`@`符号开头,后面跟着注解的名称。它们可以应用于类、接口、方法、变量等不同级别。 2. **预定义注解**: Java标准库提供了若干预定义注解,如`...

    java注解整理

    Java注解是Java编程语言中的一个重要特性,它们提供了一种元数据的方式,让开发者能够向编译器或运行时环境传递额外的信息。这些信息可以用来验证代码、自动生成代码、配置框架或者在运行时进行一些处理。注解的使用...

    java注解使用例子

    Java注解(Annotation)是Java语言提供的一种元数据机制,用于向编译器、JVM或者第三方工具提供信息。在Java程序中,注解可以被附加到类、接口、方法、变量等元素上,用于执行代码检查、生成代码、部署等任务。本篇...

    Java 使用注解拼接SQL语句

    使用注解拼接SQL,可以将复杂的SQL逻辑从业务逻辑中分离出来,使DAO更易于理解和测试。 6. **示例应用**: 假设我们有一个User DAO,我们可以定义一个方法来获取用户信息,使用自定义注解: ```java public ...

    java 注解

    Java注解是Java编程语言中的一个重要特性,它允许程序员在代码中嵌入元数据...通过深入理解和熟练运用Java注解,开发者可以更好地组织代码,提高开发效率,减少出错的可能性,并为未来的维护和扩展打下坚实基础。

    Java注解的使用例子

    总的来说,Java注解为软件开发带来了更丰富的元数据功能,使代码更易于理解和维护,同时也方便了工具和框架对代码的处理。这个例子展示了如何创建、使用注解,以及如何通过Ant构建和运行包含注解的程序。

    java注解、java反射机制 jdbc 封装

    Java注解和反射机制是Java开发中的重要工具,它们极大地增强了代码的可读性和灵活性。在结合JDBC(Java Database Connectivity)API时,可以构建出更高效、更易维护的数据访问层。本案例通过注解的方式,简化了JDBC...

    对spring做java注解扩展

    本文将深入探讨如何在Spring框架中利用Java注解进行扩展,以提升代码的可读性和可维护性。 首先,我们需要了解Java注解(Annotation)。注解是Java语言的一种元数据,它提供了在编译时或运行时对代码进行信息附加的...

    spring4基于java注解事例

    在本教程中,我们将深入探讨如何使用Spring 4框架,特别是其基于Java注解的配置方式,来构建一个高效、可维护的系统。Spring 4是Java企业级应用开发的首选框架,它提供了广泛的功能,包括依赖注入、AOP(面向切面...

    java通用注解API

    通过阅读《Java通用注解和API规范.pdf》这份文档,你可以更深入地理解Java注解的原理、使用方法以及最佳实践,从而在实际开发中更好地利用这一强大的工具。这份文档涵盖了从基础概念到高级特性的全面内容,对于Java...

    注解javademo演示

    Java注解,也被称为元数据,是Java编程语言中的一个重要特性,它允许程序员在源代码中插入一些附加信息。这些信息可以被编译器或运行时环境用来验证代码、优化性能,或者提供自定义处理。Java注解在现代Java开发中...

    java注解_反射_字节码_类加载机制.zip

    Java注解、反射、字节码和类加载机制是Java编程中的核心概念,它们在实际开发中扮演着重要角色。让我们深入探讨这些知识点。 **Java注解(Annotation)**: Java注解是一种元数据,它提供了在编译时或运行时处理代码的...

    Spring java注解,元注解和自定义注解

    ### Spring Java注解、元注解与自定义注解详解 #### 一、Java注解简介 在深入了解Spring框架中的注解应用之前,我们首先需要对Java注解有一个基本的认识。Java注解(Annotation)是一种元数据,可以为程序代码添加...

Global site tag (gtag.js) - Google Analytics