自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 UnsatisfiedLinkError探案录

程序员解决程序错误就和侦探探案一样,从细微处寻找蛛丝马迹,本文记录了一次`UnsatisfiedLinkError`报错探案全过程,侦探的比喻只为搏君一笑,重要的还是其中的思路和方法吧,希望有一点点抛砖引玉的作用。

2023-02-12 21:33:34 925

原创 源码解析Spring Bean的生命周期

源码解析Spring Bean的生命周期@[TOC](源码解析Spring Bean的生命周期)一、生成bean的模型对象BeanDefinition二、创建Bean2.1 实例化之前:加载类2.2 实例化之前:可以提前返回bean(很少用到)2.3 推断构造器并实例化2.4 BeanDefinition的后置处理(很少用到)2.5 填充属性(依赖注入)三、增强bean功能3.1 扩展点:Aware接口3.2、扩展点:初始化方法之前3.3 扩展点:初始化方法3.4 扩展点:初始化方法之后四、单例bean的销

2021-06-29 10:40:38 266

原创 源码解析Spring循环依赖

源码解析Spring循环依赖一、什么是循环依赖二、Spring如何检测循环依赖三、Spring能处理哪些循环依赖的情况4.3 Spring的三级缓存4.3.1 三级缓存的使用过程4.3.2 三级缓存使用过程中重要的三个方法4.3.3 为什么一定要三个层级的缓存声明:下文出现的Spring源码都基于Spring 5.3.7版本一、什么是循环依赖所谓循环依赖是指两个或两个以上的bean互相引用对方,最终形成了一个依赖的闭环。说到循环依赖好像就会有一种先入为主的印象,总感觉是自己在代码实现上出现了问题,

2021-06-29 09:52:41 234

原创 基于JDBC的全量/增量数据迁移与同步原理

基于JDBC的全量/增量数据迁移与同步原理一、关系库基于JDBC的全量数据迁移原理1.1 where条件切片方式1.1.1 原理1.1.2 优缺点1.1.3 影响性能的因素:1.2 limit/offset分页切片方式1.2.1 原理1.2.2 优缺点1.2.3 影响性能的因素1.2.4 oracle基于分页的切片方式二、基于JDBC的增量数据迁移/同步原理三、关系库的逻辑结构3.1 Mysql3.2 Oracle3.2.1 oracle中的其它概念:3.3 PostgreSQL3.3.1 PostgreS

2021-05-12 21:46:05 2910 6

原创 JDBC驱动包的隔离加载与卸载

JDBC驱动包的类加载隔离与卸载一、驱动包的加载在"工具"和"服务"中的区别二、驱动包的管理——类加载隔离三、抛弃DriverManager四、驱动类的卸载五、警惕静态代码块对于sqoop或者datax这样以JDBC通用方式来进行数据迁移的工具来说,总是绕不开驱动包的加载。sqoop和datax只是迁移工具,所以不会暴露驱动包加载相关的问题,但如果考虑实现一个数据迁移服务的时候,就需要仔细考虑驱动包的加载问题了。一、驱动包的加载在"工具"和"服务"中的区别通过jdbc的方式进行数据迁移总是绕不过要加

2021-05-08 22:06:35 1625 3

原创 Mybatis Dynamic SQL原理——更优雅的使用Mybatis

Mybatis Dynamic SQL原理一、Mybatis Dynamic Sql是什么二、Mybatis Dynamic Sql原理2.1 mybatis的本质是什么2.2 mapper接口中没有具体实现,mybatis如何知道该怎么执行三、如何更好的使用Mybatis Dynamic Sql四、为什么在Mybatis中使用join的时候不能使用limit/offset物理分页相信使用过mybatis的人都有一些类似的困惑,xml格式的sql模板开发枯燥无味,而且容易出错,我们该如何减少不必要的模板代

2021-04-18 16:51:02 6479

原创 Mybatis DS Generator: 如何更优雅的使用Mybatis

目录一、背景二、Mybatis3 DS Generator三、Mybatis3 DS Generator使用方式四、Mybatis3 DS Generator最佳实践五、注意事项Mybatis3 Dynamic SQL Generator项目是Mybatis Generator的扩展,用于自动生成Dynamic SQL风格的Model和Mapper类。支持多表一对一和一对多的关联关系,支持枚举或自定义类型,支持泛型,支持lombok注解,通过引入Maven依赖使用,简单方便,有完整使用示例和最佳实践指

2021-02-06 21:13:28 2003 3

原创 Mysql Binlog的理解

目录一、认识binlog二、binlog详解三、与binlog密切相关的参数四、binlog和事务日志的关系4.1 binlog与redo log的一致性五、mysqlbinlog命令详解一、认识binlogmysql binlog即mysql二进制日志或者归档日志,属于逻辑日志,记录了会引起数据库状态变化的操作信息,比如用户执行的DDL和DML语句,但是不包含select、show等查询语句,binlog中以事件(event)的形式保存这些操作的信息,还包含了事件的时间、开始以及结束位置。在mys

2021-01-16 15:06:37 448

原创 死锁相关问题

目录一、什么是死锁二、死锁的必要条件三、死锁的解决方式四、死锁示例4.1 java示例4.2 mysql示例一、什么是死锁死锁指两个进程/线程互相占有对方需要的资源,两个线程都向对方请求资源,同时自己还把持住资源不释放,就会导致两个线程始终处于互相等待的状态,就造成了死锁。二、死锁的必要条件更严谨一点说,在一个系统中以下四个条件同时成立,那么就能引起死锁:互斥条件:至少有一个资源处于非共享模式,也就是某个资源一次只能被一个进程使用,如果另一进程申请该资源,那么申请进程应等到该资源被释放之后才能

2021-01-16 14:25:45 139

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除