当前位置: 首页 > news >正文

网站建设是做什么的排名首页服务热线

网站建设是做什么的,排名首页服务热线,武汉搜狗关键词优化,做网站找沈阳横纵网络文章目录前言参考目录学习笔记1、Java 注解1.1、Java 元注解1.2、Java ElementType 枚举值1.3、自定义注解2、Param 注解分析2.1、Param 注解2.2、测试方法2.3、流程分析(重点:ParamNameResolver)前言 本文内容对应的是书本第 7 章的内容&am…

文章目录

    • 前言
    • 参考目录
    • 学习笔记
      • 1、Java 注解
      • 1.1、Java 元注解
      • 1.2、Java ElementType 枚举值
      • 1.3、自定义注解
      • 2、`@Param` 注解分析
      • 2.1、`@Param` 注解
      • 2.2、测试方法
      • 2.3、流程分析(重点:`ParamNameResolver`)

前言

本文内容对应的是书本第 7 章的内容,主要是关于Java 元注解以及 @Param 注解的分析。

参考目录

  • 《通用源码阅读指导书:MyBatis源码详解》
    本文主要内容来自 第7章 annotations包与lang包
  • 《通用源码阅读指导书——MyBatis源码详解》配套示例
    书中涉及的 Demo 示例,本文示例在 Demo1 的基础上进行了简单改造。

与上篇一样,需要说明的是,书中使用的框架版本和本文(本专栏)使用的版本不一样。

名称书中版本专栏版本
MyBatis3.5.23.5.11+
Spring Boot2.X3.X
JDK817+

随着版本的升级迭代,会有一些内容不尽相同,需要结合着进行学习。

学习笔记

1、Java 注解

1.1、Java 元注解

在这里插入图片描述

两处划红色虚线的位置是我做了想法标注,由于作者使用的 JDK 版本并不是最新的,因此和现在的有差异,下面来说明一下。

Java中一共有 七个 元注解,分别是@Documented@Target@Retention@Inherited@Repeatable@Native@ContentType

  • @Native:这个注解用于标记一个方法是本地方法(native method)。本地方法是由非 Java 代码实现的方法,通常是用 C 或 C++ 等语言编写的。使用本地方法可以实现与Java虚拟机之外的底层系统或资源的交互。在声明本地方法时需要使用该注解,同时还需要在本地方法中使用 JNI(Java Native Interface)来和非 Java 代码交互。
  • @ContentType:用于指定注解所表示的内容类型,例如时间跨度或频率。

在这里插入图片描述

在这里插入图片描述

1.2、Java ElementType 枚举值

这里是引用

在 JDK 17 中,又多了两种枚举值 MODULE 以及 RECORD_COMPONENT

具体查看源码可知:
在这里插入图片描述

在这里插入图片描述

和 ChatGPT 唠了一下关于这两者:
在这里插入图片描述

1.3、自定义注解

关于自定义注解,书中有进行举例说明。

结合前面学习的内容,本文以前几篇文章中分析 RuoYi-Vue-Plus 框架中的自定义注解 @Translation 为例对元注解的使用进行简单说明:
在这里插入图片描述

2、@Param 注解分析

完成了对 Java 注解的基本了解之后,书中对 MyBatis 自定义注解 @Param 注解进行了分析,并结合代码分析了关于 Mapper 接口中定义的参数进行解析的过程。

2.1、@Param 注解

在这里插入图片描述

2.2、测试方法

参照书中的举例,结合 Demo1 进行了一些改造,其他不变,重点是观察 Mapper 接口的参数解析过程。

在这里插入图片描述

2.3、流程分析(重点:ParamNameResolver

Debug 过程如下:
在这里插入图片描述

在这里插入图片描述

MapperProxy#invoke
在这里插入图片描述

此方法是最终执行 SQL 查询的主要方法。参数的解析方法在第一步 cachedInvoker(method) 时完成。

MapperProxy#cachedInvoker
在这里插入图片描述

MapperMethod#MapperMethod
在这里插入图片描述

创建映射方法,创建 SQL 命令以及方法签名 MethodSignature

MethodSignature#MethodSignature
在这里插入图片描述

该方法的最后会创建一个参数名称解析器 ParamNameResolver,也是@Param 注解能够生效的原因所在。

ParamNameResolver#ParamNameResolver
在这里插入图片描述

这里是引用

由于测试方法中第二个参数没有标注注解,来看下它的参数名实际上是什么:
在这里插入图片描述

在这里插入图片描述

最终完成三个参数参数名称的解析:
在这里插入图片描述

所有的名称会被存在 names 中:
在这里插入图片描述

回到上一级完成了方法签名的创建:
在这里插入图片描述

最终返回到 invoke 方法执行 SQL 语句。
在这里插入图片描述

本章节的重点是分析参数名称解析器 ParamNameResolver 的执行过程,对于其他方法会在后续的章节中再展开说明。

(完)

http://www.dinnco.com/news/51136.html

相关文章:

  • 各大网站博客怎么做推广软文写作什么意思
  • 建站平台选择建议发布会直播平台
  • 推广型网站制作哪家好网址查询网站
  • 郑州网站建设 个人工作室谷歌广告联盟官网
  • 网站建设报价单中国企业网
  • 怎么做好企业网站在线推广企业网站的方法有
  • 网站建设公司排名seo百度seo排名优化软件
  • 福安建设网站广州网站营销seo
  • 兰州大学网页与网站设计怎样做竞价推广
  • 邢台手机网站建设地方网络营销的概念与特点
  • 许昌做网站优化网址查询ip地址
  • 成都网站关键词排名app排名优化公司
  • 网站制作时间代码域名解析ip地址
  • 吕梁网站制作吕梁安全杭州网络推广
  • 淘宝客网站制作百度推广代理商查询
  • 长沙专门做网站建设的公司互联网营销师培训内容
  • 台州seo网站排名网络营销与网站推广的区别
  • 深圳网站设计吧seo专业培训课程
  • 四川建设门户网站建网站的详细步骤
  • 贵阳专业做网站的公司武汉seo工厂
  • 凡科建站代理登录入口互联网营销师培训机构
  • 网站新媒体建设百度统计app下载
  • 中台网站开发新东方烹饪学校学费价目表
  • 网站建设用哪个软件外包公司有前途吗
  • 三亚网站建设公司石家庄网络推广
  • 做淘宝头像的网站如何快速推广网站
  • 免费网站后台管理系统模板搜索引擎优化的方法与技巧
  • 海南网站建设介绍googleplay安卓版下载
  • 上传网站 php 服务器百度怎么推广产品
  • 我的网站dede成人厨师短期培训班