美文网首页
一个Java例子,解释清楚注解的作用

一个Java例子,解释清楚注解的作用

作者: info_gu | 来源:发表于2020-07-01 11:57 被阅读0次

写在前面

今天聊的是注解,但其实单纯说注解,注解本身没有任何的作用。简单说和注释没啥区别,而它有作用的原因是:注解解释类,也就是相关对代码进行解释的特定类。一般这些类使用反射是可以拿到的。

因此,通过注解和反射这两者的结合使用,是可以做到很多功能的。不知道各位小伙伴有没有留意过,很多框架都是使用了注解。如果再深入的看一看源码就会发现,很多注解是和反射一起使用的。

因此今天咱们也让通过注解+反射,写一个简单的ORM框架,效果是通过注解的方式快速生成SQL语句。

正文

首先是注解类:Table,Column(分别代表:表和列)

image

话外音

@Target:用于描述注解的使用范围(即:被描述的注解可以用在什么地方)注解(annotation)可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。在注解类型的声明中使用了target可更加明晰其修饰的目标。取值(ElementType)有:

ElementType.ANNOTATION_TYPE 可以应用于注释类型。ElementType.CONSTRUCTOR 可以应用于构造函数。ElementType.FIELD 可以应用于字段或属性。ElementType.LOCAL_VARIABLE 可以应用于局部变量。ElementType.METHOD 可以应用于方法级注释。ElementType.PACKAGE 可以应用于包声明。ElementType.PARAMETER 可以应用于方法的参数。ElementType.TYPE 可以应用于类的任何元素。

@Retention:@Retention定义了该注解被保留的时间长短:某些注解仅出现在源代码中,而被编译器丢弃;而另一些却被编译在class文件中;编译在class文件中的注解可能会被虚拟机忽略,而另一些在class被装载时将被读取(请注意并不影响class的执行,因为注解与class在使用上是被分离的)。使用这个meta-Annotation可以对注解的“生命周期”限制。作用:表示需要在什么级别保存该注释信息,用于描述注解的生命周期(即:被描述的注解在什么范围内有效)  取值(RetentionPoicy)有:

1.SOURCE:在源文件中有效(即源文件保留)2.CLASS:在class文件中有效(即class保留)3.RUNTIME:在运行时有效(即运行时保留)

PS:注解只有一个成员时,按规范写成value(),当然不这么写不会报错。如果不设置默认值,那么使用注解时必须要传值。只有类可以被注解,因为接口或者抽象类并不能被注解。

回归正文

紧接着是注解的使用类:Person(就是一个使用注解的Java bean)

image

PS:如果有两个以上参数:必须这么使用@Column(value="user_name")

核心方法

写一个通过对象生成查询SQL语句的方法。先声明一下,这种写法没有太大的时机意义。只是举例说明一下反射操作注解的一种思想:

image

方法使用

在main方法中的使用:

image

运行效果,可能很多小伙伴已经猜到啦,就是打印出一个query的SQL语句:

image

实话实说,这样写没什么卵用。但是我们可以通过这个小demo管中窥豹,举一反三。比如可以在库中写一个工具类,直接调用这个工具类,传递所需的参数,返回最终拼接的sql语句,这样就能够做到不会需要考虑SQL语句拼不拼错了,除非你自己写错,否则不会出现任何的语句错误。

剧终

相关文章

  • 一个Java例子,解释清楚注解的作用

    写在前面 今天聊的是注解,但其实单纯说注解,注解本身没有任何的作用。简单说和注释没啥区别,而它有作用的原因是:注解...

  • java基础-day28-注解

    注解 1. 注解概述 1.1 注解解释 1.2 注解作用 1.3 Java中预定义的一些注解 2. Java中自定...

  • Spring注解原理探索(一)

    之 Java元注解释义 Question 注解在Java中如何起作用? Spring是如何识别注解? 如何自定义注...

  • java注解学习(2)-利用注解生成动态代码

    前言 在前面我们学习过java的注解的语法,说明了注解的作用;前面举的例子是运行时注解,这样会影响我们代码执行的效...

  • Spring面试题和答案——Spring注解(4)

    什么是基于Java的Spring注解配置? 给一些注解的例子. 基于Java的配置,允许你在少量的 Java注解 ...

  • Spring面试题和答案<3>

    Spring注解 36. 什么是基于Java的Spring注解配置? 给一些注解的例子. 基于Java的配置,允许...

  • JAVA 核心笔记 || [xxx] 注解

    JAVA 注解 JAVA 提供4中注解负责 定制 注解 @Target 目标注解的作用域, 可选参数由 Eleme...

  • Java Annotation注解

    1 Java 元注解 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotatio...

  • Java注解解释

    Java注解又称Java标注,是Java语言5.0版本开始支持加入源代码的特殊语法元数据[1]。Java语言中的类...

  • Java注解 annotation

    一.什么是注解 官方解释: Java 注解用于为Java程序提供元数据。作为元数据,注解不直接影响代码的执行,但也...

网友评论

      本文标题:一个Java例子,解释清楚注解的作用

      本文链接:https://www.haomeiwen.com/subject/tiecqktx.html