手写系列
文章平均质量分 89
本专栏分享手写SpringMVC、数据库连接池、RPC框架、Mybatis、Tomcat等,来理解他们的实现原理。
DayDayUp丶
Good Good Study, Day Day Up!
展开
-
手写Lock不可重入的公平锁
目录一、前言1.1、AQS1.1.1、信号量Semaphore1.1.2、计数器CountDownLatch1.2、CAS1.3、LockSupport二、手写实现2.1、获取释放锁的细节步骤2.2、代码实现 一、前言 Jdk的锁常见有两种:synchronized关键字和Lock接口, Lock接口,最常用可重入锁ReentrantLock,底层实现是AQS+CAS+LockSupport。 这里简单手写一把不可重入的公平Lock锁。 1.1、AQS ReentrantLock中的Sync成员变量,继承自原创 2022-03-14 08:00:00 · 1022 阅读 · 0 评论 -
手写JDK动态代理
目录一、准备工作二、静态代理的简单实现三、JDK动态代理的简单实现3.1、自动生成动态代理类的java源文件3.2、自动编译生成的源文件得到class字节码文件3.3、加载字节码文件到JVM以生成代理对象3.4、JDK动态代理工具类实现代码3.5、测试一下 环境:OpenJDK(Zulu 8.58.0.13-CA-macos-aarch64) 需求:我们常用AOP做各种切面业务,AOP的实现依赖于JDK动态代理和cglib,关于JDK动态代理的实现原理,我们可以自己做个简单实现来理解。 一、准备工作 首先提原创 2022-01-02 09:00:00 · 1032 阅读 · 0 评论 -
Redis通信协议RESP之手写Redis客户端
一、前言 在此提前预热一下 Redis 的基本知识点。 Redis 全称 Remote Dictionary Server,意为远程字典服务。“字典”在 python 中的意义等同于 Java 中的键值对 map,所以可以理解为它的数据存储方式是 map。 1.1 定义 Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 1.2 数据类型 值(value)可以是字符串(string)原创 2020-06-07 21:30:36 · 648 阅读 · 0 评论 -
SpringMVC原理之手写
Spring MVC简单说,是Spring生态圈里的一个优秀的MVC框架,也可以认为是一个增强型的servlet(核心是DispatcherServlet,配置在web.xml中)。 Spring MVC相关总结:https://www.cnblogs.com/doudouxiaoye/p/5693399.html 通过对Spring MVC原理的了解,自己手写一个简洁版的,可以按照以下步骤进...原创 2019-02-03 16:36:12 · 1172 阅读 · 0 评论 -
数据库连接池原理之手写
目录 一、准备工作 二、非连接池方式 三、自定义连接池方式 3.1 自定义连接池 3.2 运行测试自定义连接池 3.3 技术总结答疑 环境:jdk1.8,MySQL 5.5.41,mysql-connector-java-5.1.26.jar,lombok-1.18.6.jar 需求:我们常用各种数据库连接池,如druid、c3p0、dbcp、tomcat-jdbc或是Spr...原创 2019-08-19 00:13:31 · 1616 阅读 · 5 评论 -
Tomcat原理之手写
目录 一、准备工作 1.1 Tomcat概要 1.2 技术储备 二、实现步骤 三、相关类的实现和介绍 3.1 包结构 3.2 Servlet配置类 3.3 Tomcat实现类 3.4 请求响应实现类Request/Response 3.5 工具类HttpUtil/FileUtil 3.6 Servlet抽象和测试实现类 四、测试运行 4.1 成功请求servlet(200...原创 2019-09-03 23:33:37 · 800 阅读 · 0 评论 -
SpringBoot-starter原理之手写
目录 一、前言 二、实现思路 2.1 命名规范 2.2 实现步骤 三、手写实现 3.1 新建第三方jar 3.2 新建starter工程 3.3 引入jar包 3.4 编写自动配置类 3.5 编写配置发现文件 3.6 打包发布 四、测试 一、前言 SpringBoot-starter的原理,在之前的文章中已作解析,可点此传送。 今天要来手动实现一个自己的SpringB...原创 2019-09-15 23:53:47 · 7867 阅读 · 0 评论