【源码解读之 Mybatis】【基础篇】-- 第3篇:SqlSession的创建与生命周期
第3篇:SqlSession的创建与生命周期
1. 学习目标确认
1.0 第2篇思考题解答
在深入学习SqlSession之前,让我们先回顾并解答第2篇中提出的思考题,这将帮助我们更好地理解SqlSession在整个架构中的作用。
思考题1:为什么MyBatis要设计如此复杂的配置系统?
答案要点:
统一管理:所有配置项集中管理,避免配置分散和重复
灵 ...
内部类
什么是内部类
内部类是一个定义在另一个类内部的类。
内部类可分为四种:
1. 成员内部类: 定义在另一个类内部,且没有使用static修饰,且可以访问外部类所有的成员。要创建内部类的实例必须先存在外部类的实例。
public class Outer {
String name;
class Inner {
public void test() {
...
靠谱的程序员推荐阅读----->《阿里Java开发手册》【强制】所有的覆写方法,必须加@Override注解
《阿里巴巴Java开发手册》编程规约->OOP规约 其中有一条,强制要求所有覆写方法添加 @Override 注解。
这是一项非常重要的编码规范。它主要有以下几个核心目的和好处:
📌 1. 编译时检查覆写是否正确
@Override 注解会让编译器检查该方法是否确实成功覆写了父类(或接口)中的方法。如果方法签名与父类方法不一致(例如, ...
springboot~获取原注解的方法findMergedAnnotation使用场景
一 重要知识点
在Spring框架中,AnnotationUtils.findAnnotation()和AnnotatedElementUtils.findMergedAnnotation()是两种不同的注解查找方式,主要区别如下:
1. AnnotationUtils.findAnnotation()
特点:直接查找原始注解
局限性:
无法获取被元注解(如@AliasFor)覆盖的属性值
无法处理注解属性覆盖(Annotation Attr ...
国产化Excel处理组件Spire.XLS教程:Java在 Excel 表格中轻松添加下标
当 Excel 表格中包含化学式、统计脚注或科学数据时,往往需要使用下标来表示。这不仅能够让数据更加清晰,也使文档更加专业。但是,Microsoft Excel 自带的下标功能操作比较繁琐,而且也不支持批量应用,手动操作通常需要花费大量的时间。 基于此,本篇指南将介绍如何借助Spire.XLS使用 Java 实现轻松在 Excel 中插入 ...
剑指offer-32、把数组排成最⼩的数
题⽬描述
输⼊⼀个正整数数组,把数组⾥所有数字拼接起来排成⼀个数,打印能拼接出的所有数字中最⼩的⼀个。例如输⼊数组 {3,32,321} ,则打印出这三个数字能排成的最⼩数字为 321323 。
示例1
输⼊:[3,32,321]
返回值:"321323"
思路及解答
自定义排序(推荐解法)
这道题要求拼起来的数是最⼩的数字,其实是⼀个排序问 ...
接私活神器!一个轻量级的 Java 快速开发平台!
大家好,我是 Java陈序员。
在日常开发中,无论是企业内部开发,还是个人独立开发,亦或是接私活,常常需要进行一些基础设施开发工作,十分繁琐。
这时,如果有一款脚手架开发平台,就能大大提高开发效率。
今天,给大家介绍一个轻量级的 Java 快速开发脚手架,包含前后端,可以说是接私活神器!
关注微信公众号:【Java陈 ...
JDK 25 正式发布,长期支持
JDK 25 是 LTS(长期支持版),至此为止,有 JDK8、JDK11、JDK17、JDK21 和 JDK 25 这四个长期支持版了。
JDK 25 共有 18 个新特性,这篇文章会挑选其中较为重要的一些新特性进行详细介绍
语言特性
基本类型模式匹配(JEP 507)
JDK25作为第三次preview
在Java的模式匹配框架instanceof和switch中直接支持原始类型(如int、 ...
wso2~api的高级限流策略
发布者平台使用高级策略
在发布者平台,对api资源配置时,可以配置api级别或者是消费者(订阅)级别的限流策略;前者api级别配置的策略(高级限流策略),可以只针对某个具有资源,也可以针对某个api资源。
关闭整个api级别的限流,可以对某个资源选择限流策略
admin平台配置高级策略
高级策略-默认,当没有被条件组合选 ...
剑指offer-31、整数中1出现的次数
题⽬描述
求出 1~13 的整数中1出现的次数,并算出 100~1300 的整数中 1 出现的次数?为此他特别数了⼀下 1~13 中包含 1 的数字有 1、10、11、12、13 因此共出现 6 次,但是对于后⾯问题他就没辙了。 ACMer 希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意⾮负整数区间中 1 出现的次数(从 1 到 n 中 1 出现的次数 ...
wso2~系统端口总结
好的,这是 WSO2 API Manager 中这些常见端口的详细总结。了解这些端口对于部署、运维和故障排查至关重要。
我将它们分为 API 流量端口、管理/控制平面端口 和 内部通信端口 三类。
一、API 流量端口 (API Traffic Ports)
这些端口用于处理实际的 API 调用(数据平面流量)。
端口
协议
服务
作用描述
默认使用者
8 ...
刚刚 Java 25 炸裂发布!让 Java 再次伟大
大家好,我是程序员鱼皮。
刚刚,Java 25 正式发布!这是继 Java 21 之后,又一个 LTS 长期支持版本,也是 Java 开发者们最期待的版本之一。其中有个特性可以说是颠覆了我对 Java 的认知,让 Java 再次伟大!
那么 Java 25 都发布了哪些新特性?有没有必要升级?
一篇文章,带你速通 Java 新特性,学会后又能愉快地和面试官 ...
wso2~把事件处理的思想应用到spring框架
理解你对于WSO2 APIM中事件处理组件以及在Spring Boot中实现类似功能的兴趣。我会为你梳理WSO2 APIM中四个事件核心组件的作用和关系,并提供在Spring Boot中实现类似事件处理模块的思路和示例。
WSO2 APIM(API Manager)中的事件处理核心组件,主要用于实时流处理(Stream Processing)和复杂事件处理(Complex Event Proc ...
简洁美观!一款值得 Star 的 Java 博客项目!
大家好,我是 Java陈序员。
今天,给大家介绍一个简洁美观的开源 Java 博客系统。
关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。
项目介绍
OneBlog —— 一个简洁美观、功能强大并且自适应的 Java 博客。基于 SpringBoot + Bootstrap 开发,支持移动端自适应,配有完备 ...
Java并发编程(4)
锁
1、synchronized用过吗?怎么用?
synchronized是常用来保证代码的原子性的。
//1.修饰实例方法
// 有两个对象obj1和obj2,线程A调用Object.test(),线程B调用obj2.test(),不会互斥
// 但A和B如果都调用obj1.test(),会互斥//场景:一个银行账户对象,不同线程操作同一个账户时要排队
public synchronized ...
Java并发编程(3)
Java内存模型
1、说一下你对Java内存模型(JMM)的理解
Java程序运行在各种硬件和操作系统上,不同硬件的CPU缓存策略、内存访问顺序、指令重排规则可能都不一样。那JMM是Java规范定义的一个抽象模型,是一套规则:
线程和主内存的交互:线程如何从主内存读变量、写变量
可见性保证:什么时候一个线程对变量的修 ...
Java并发编程(1)
基础
1、并行跟并发的区别
并行:同一时刻,多个线程都在执行,这就要求有多个CPU分别执行多个线程。
并发:在同一时刻,只有一个线程执行,但在一个时间段内,两个线程都执行了。其实现依赖于CPU切换线程,因为切换时间很短,所以基本对于用户是无感知的。
2、什么是进程和线程
进程:程序运行起来后在内 ...
Spring篇知识点(1)
一、Spring框架的特性
IOC和DI支持:Spring 的核⼼就是⼀个⼤的⼯⼚容器,可以维护所有对象的创建和依赖关系,Spring ⼯⼚⽤于⽣成Bean,并且管理 Bean 的⽣命周期,实现⾼内聚低耦合的设计理念。
AOP编程支持:方便实现对程序进行权限拦截、运行监控等切面功能
声明式事务支持:加@Transactional注解,方法 ...
条码控件Aspose.BarCode教程:使用 Java 自动生成 DotCode 条形码
DotCode 是一种二维条码符号,广泛应用于制造业和制药业等行业。这种条码简化了创建机器可读代码的流程,从而提升了物流效率。借助Aspose.BarCode for Java,我们可以构建一个工具,以 Java 编程方式自动生成 DotCode 条码。此 Java SDK 允许您自定义属性并将条码导出为图像格式。本指南将涵盖从安装到开发的整个流程。
As ...
借助Aspose.ZIP SDK,Java 中提取CAB 文件的分步指南
CAB压缩包通常用于在 Windows 操作系统上安装软件包。这种压缩文件格式可以保持目录结构并提高存储效率。然而,本文将介绍使用 Java 以编程方式解压 CAD 压缩包的方法。Aspose.ZIP for Java是一款用于文件压缩和归档的新一代 SDK。本教程中,我们将使用此 SDK 在 Java 中实现 CAB 文件的提取。无论文件夹中包含多少种 ...