这两天想搭一个纯粹使用注解的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注解使用方法的简单总结,此中有些理解的用法是参考一些博客总结出来的,作为自己的积累使用。
相关推荐
NULL 博文链接:https://thetopofqingshan.iteye.com/blog/1679435
Java注解是一种用于提供元数据的特殊注释形式,可以应用于类、方法、字段和其他程序元素。这些元数据描述了程序结构、行为或属性的信息。Java注解以@符号开始,并包含注解名称和相关属性。Java提供了许多内置注解,...
注解在Java编程中会变得越来越重要越来越常用,从EJB 3.0和JUnit 4可以看出这种趋势来,所以理解和掌握注解的使用是非常有必要的。下面这个程序自定义了两个注解,然后将注解中的信息打印出来,使用下面的代码也可以...
主要介绍了深入理解Java注解类型(@Annotation),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
java或Java框架中常用的注解及其作用详解:Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。 Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过...
基于Spring boot + maven,以注解+AOP方式实现的java后端项目接口参数校验框架。迄今为止使用最简单、最容易理解的参数校验方案。博客地址:https://blog.csdn.net/weixin_42686388/article/details/104009771
计算机后端-Java-Java核心基础-第23章 枚举类与注解 10. 注解的理解.avi
提到注解,我们会不由的想到注释,其实注解和注释不是一个东西,注释的作用就是解释代码,方便理解和阅读,说白了就是给程序员看的。而注解则不是,注解的作用比较大,可以进行编译检查、生成doc文档或者进行代码...
注解+自定义注解+元注解+理解 - 本资源是一个注解的理解,解释了注解的作用和分类,以及如何用Java创建和使用自定义注解,包括使用元注解,反射,处理器等。
所以学习JDK 5.0的注解知识有助于我们更好地理解和掌握Spring的AOP技术。 对于Java开发人员来说,在编写代码时,除了源程序以外,我们还会使用Javadoc标签对类、方法或成员变量进行注释,以便使用Javadoc工具...
Java 注释有助于提供一种系统方法,以 Java 编译器和 JVM 可以理解、测试和验证的功能方式为特定代码添加额外信息。注解是一项极其强大的新功能,首次添加到 Java 5 中。Java 提供了一些预定义的注释,但我们也可以...
1.枚举类的理解:类的对象只有有限个,确定的。我们称此为枚举类 2.当需要定义一组常量时,强烈建议使用枚举类。 3.如果枚举类中只有一个对象,则可以作为单例模式的实现方式。 二、如何定义枚举类 方式一:Jdk5.0...
主要介绍了深入理解 Java注解及实例的相关资料,希望通过本文大家能够掌握java注解的知识,需要的朋友可以参考下
1、本文详细描述了java元注解的作用。 2、通过详细示例,让读者更直观地阅读,更清晰的理解。 3、示例代码可直接复制,编译后可直接运行。 4、根据示例以及运行结果,让读者加强记忆及理解。
java 中对AjAx的理解 java 中对AjAx的理解 java 中对AjAx的理解
JAVA设计模式--程序设计--反射--注解--泛型
理解Java注解 注解就相当于对源代码打的标签,给代码打上标签和删除标签对源代码没有任何影响。有的人要说了,你尽几把瞎扯,没有影响,打这些标签干毛线呢?其实不是这些标签自己起了什么作用,而且外部工具通过...
,注解与注释是有一定区别的,可以把注解理解为代码里的特殊标记 反射和反射机制 反射(Reflection): Java的反射是指程序在运行期可以拿到一个对象的所有信息。 反射的优点和缺点: 优点:可以实现动态创建对象...
从JDK5开始,Java增加对元数据的支持,也就是注解,注解与注释是有一定区别的,可以把注解理解为代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过注解开发人员可以在不改变原有...
主要介绍了JAVA注解相关知识,文中讲解非常详细,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下