2024年3月6日
binding 模块主要为了解决一个历史遗留问题,原先查询一个 VO 对象 时需要调用 SqlSession.queryForObject(“selectXXVOById”, primaryKey)方法,执行指定的 sql 语句,第一个参数 selectXXVOById 指定了执行的 sql 语句 id,如果我们不小心写错了参数,Mybatis 是无法在……
阅读全文
2024年3月6日
在数据持久层,数据源和事务是两个非常重要的组件,对数据持久层的影响很大,在实际开发中,一般会使用 Mybatis 集成第三方数据源组件,如:c3p0、Druid,另外,Mybatis 也提供了自己的数据库连接池实现,本文会通过 Mybatis 的源码实现来了解数据库连接池的设计。而事务方面,一般使用 Spring 进行事务的管……
阅读全文
2024年3月6日
在 Mybatis 的基础支持层主要看一下支撑 ORM 实现 的底层代码。 1 反射工具包 1.1Reflector Reflector 类 主要实现了对 JavaBean 的元数据属性的封装,比如:可读属性列表,可写属性列表;及反射操作的封装,如:属性对应的 setter 方法,getter 方法 的反射调用。源码实现如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32……
阅读全文
2024年3月6日
作为一名初入职场的开发者,最开始是在逛 B 站刷视频时看到的一个 Spring 源码阅读解析,当时作为一个只知道 SSH 和 CRUD 的 boy,看完后心里就两个词儿“卧槽!牛 B 啊!”而且在去年秋招面试阿里时几乎每次都会被面试官问道“有阅读过什么开源框架吗?”每次我都只能一脸便秘的“嗯…,呃…,啊…,木得…”。这在……
阅读全文
2024年3月6日
本文用于总结《阿里 Java 开发手册》、《用友技术 review 手册》及个人 Java 开发工作经验,并结合这半年来的源码阅读经验进行编写。回顾那些写过的和读过的代码,回顾自己。 第一章 基础编码规范 1.1 命名规范 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 tips:JDK 动态代理生成的代……
阅读全文
2024年3月6日
从框架源码中学习设计模式是一种非常有效的学习方式,可以帮助我们更好地理解设计模式的应用场景和实现方式。以 Spring 框架为例,它是一个非常成熟的 Java 框架,里面广泛应用了各种设计模式。在学习 Spring 框架源码的过程中,我们可以得到以下一些感悟: 单例模式是 Spring 框架中最常用的设计模式之一。Spring 框架中……
阅读全文
2024年3月6日
设计模式是解决问题的方案,从大神的代码中学习对设计模式的使用,可以有效提升个人编码及设计代码的能力。本系列博文用于总结阅读过的框架源码(Spring 系列、Mybatis)及 JDK 源码中 所使用过的设计模式,并结合个人工作经验,重新理解设计模式。 本篇博文主要看一下行为型的几个设计模式,即……
阅读全文
2024年3月6日
设计模式是解决问题的方案,从大神的代码中学习对设计模式的使用,可以有效提升个人编码及设计代码的能力。本系列博文用于总结阅读过的框架源码(Spring 系列、Mybatis)及 JDK 源码中 所使用过的设计模式,并结合个人工作经验,重新理解设计模式。 本篇博文主要看一下结构型的几个设计模式,即……
阅读全文
2024年3月6日
设计模式是解决问题的方案,从大神的代码中学习对设计模式的使用,可以有效提升个人编码及设计代码的能力。本系列博文用于总结阅读过的框架源码(Spring 系列、Mybatis)及 JDK 源码中 所使用过的设计模式,并结合个人工作经验,重新理解设计模式。 本篇博文主要看一下创建型的几个设计模式,即……
阅读全文
2024年3月6日
Spring、Netty、Mybatis 等框架的代码中大量运用了 Java 多线程编程技巧。并发编程处理的恰当与否,将直接影响架构的性能。本章通过对 这些框架源码 的分析,结合并发编程的常用技巧,来讲解多线程编程在这些主流框架中的应用。 Java 内存模型 JVM 规范 定义了 Java 内存模型 来屏蔽掉各种操作系统、虚拟……
阅读全文