摘要:
1 前言 微服务之间的调用,OpenFeign 是一种选择,并且还提供了很多功能,比如我们有多个节点,它能负载均衡,当服务发生异常时,它还能提供熔断机制。所以它是怎么实现的,因为我们平时只需要写 @FeignClient 是个接口,所以它势必会走代理,所以是不是要从我们的 @FeignClient 阅读全文
摘要:
1 题目 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder = [9,3,15,20,7], postorder = [9,15,7,20 阅读全文
摘要:
1 题目 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 1: 输入:lists = [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释:链表数组如下: [ 1->4->5, 1->3->4, 2 阅读全文
摘要:
1 前言 Bean 的创建周期大家可能都知道,三级缓存大家也都知道,那么他俩之间交互的细节如何?这节我就捋一下普通 Bean 的一个创建过程和三级缓存之间的交互。 2 图解剖析 2.1 普通无代理 Bean 创建 大概有4次交互: (1)getBean 的时候,getSingleton(beanNa 阅读全文
摘要:
1 前言 今天想细细研究下 BeanDefinition,至于为什么,主要是看了很多遍,没太关注 mergedBeanDefinition 所以比较好奇,它是干啥的呢?所以得先搞清 BeanDefinition,开整。 2 源码分析 我们得先知道 BeanDefinition 在 Spring 这个 阅读全文
摘要:
1 前言 最近在忙项目上线的事情,那么上线前要确保系统流程或者基础档案的正确性,往往会做几次数据的准确性验证。具体的说就是把客户的一个月甚至两个月的不同公司下的各种订单数据、库存数据,导入到系统中,看每个公司的订单数据、所消耗的库存数量、流程能不能正确的跑下去等方面进行对比来验证。 奈何系统的导入做 阅读全文
摘要:
1 前言 我们平时异步会用到线程池,那你怎么用的呢?用的对不对呢?这节我们看看源码中的一些应用场景,看看他们是如何设置参数,如何停止的。 回忆一下线程池的几个参数:核心线程数、最大线程数、空闲时间、队列、线程工厂、拒绝策略。 2 源码应用 我们就看看他们是如何创建线程池、线程池的参数设置、线程的停止 阅读全文
摘要:
1 前言 之前我们从数据库连接的角度看过 MyBatis 和 Spring 的交互,以及在动态数据源下的交互,那么我们这节看什么呢?看一下在有无 @Transitional 下的事务提交的差异。 想一个问题,事务提交或者回滚,最后的落点是什么?是不是就是那条数据库连接的提交或者回滚,就跟我们早之前的 阅读全文
摘要:
1 前言 本节我们续前两节(调试查看Mapper接口生成过程、源码分析 Mapper生成注入入口分析)的内容,看下 MapperFactoryBean 是如何代理掉我们的 @Mapper 接口的。 上节我们看到我们的 Mapper 接口的 BeanDefinition, 已经放进 spring 的上 阅读全文
摘要:
1 前言 续上节主要用调试的方式,看了一下 Mapper 接口的注入过程,本节就从源码的角度,一步步分析 Mapper 接口都是怎么注入到 Spring容器中的。 2 源码分析 2.1 入口分析 我们上节看到扫描 @Mapper 的方式有两种,一种是基于 @MapperScan 的主动扫描,另一种就 阅读全文