05 2024 档案
摘要:1 前言 Spring 帮助我们管理着 Bean,那么带来的一个思考就是 Bean 该维护一个实例呢?还是每次都获取新的呢?单例的依赖多例的作用范围的变化怎么处理呢?也就是 Bean 的一个作用范围的管理是怎么控制的呢?这就是我们本节要看的 Scope。 2 Scope 介绍 2.1 @Scope
阅读全文
摘要:1 前言 我们看过很多的时机,比如服务数据源的关闭时机、服务正式开始处理请求的时机或者Tomcat和SpringBoot的协同、还有 mybatis等一些插件的入场时机等,这节我们要再看一个时机,就是关于跟注册中心(Eureka、Nacos)的时机,比如你有没有思考过: 我服务还没起来,你就到注册中
阅读全文
摘要:1 前言 到现在我碰到的微服务,大多都是打的 Jar包,然后打镜像,推镜像,发布。当然也有 War 包的,但是还是比较少。我们这节主要看看 Jar包。 不知道大家有没有看过 SpringBoot 打好的 Jar 包的内容,以及它是如何启动的,这节我们就来看看。 2 Jar 包启动 2.1 单Java
阅读全文
摘要:1 前言 微服务中我们会用到数据源,数据源中其实就是管理我们的数据库连接,对于数据库而言,连接数是很珍贵的资源,所以释放无用或者长时间空闲的连接显得很重要。 那么对于微服务比如我们的 SpringBoot 当服务启动的时候会初始化数据源,那么停止的时候,是如何关闭数据源,释放连接的呢?这节我们就来看
阅读全文
摘要:1 前言 上次模板 Excel 省市区的联动是用的 POI,今儿再用 EasyExcel 实现一个,贴一下实现思路。 EasyExcel 官网地址,其实人家官网写的很清楚了,分场景分示例,用法都给贴出来了,感觉可以实现大多数的模板。我们这里的省市区就是要用到自定义拦截器的功能。 2 实现 Maven
阅读全文
摘要:1 前言 我之前看过插件的执行过程:【Mybatis】【插件】Mybatis源码解析-插件机制,主要是通过一个 Executor 的创建以及执行过程串了一下插件,我们这里简单回忆下: (1)Mybatis 把所有的插件都放进了 InterceptorChain 类里的 interceptors 集合
阅读全文
摘要:1 前言 整台新电脑或者新的项目代码,git上四五十个仓库代码,一个一个拉属实有点拉跨,整了个脚本,可以拉下所有的仓库代码。 2 前置 需要装一个解析 json的,windows 的话可以直接下载:下载,mac的话可以再官网下载:官网地址,顺便再给大家推荐个 json 解析语法校验工具:工具地址。
阅读全文
摘要:1 前言 ThreadLocal 是一个常用的工具类,它允许我们创建线程局部变量。这意味着每个线程都可以独立地改变自己的副本,而不会影响其他线程所持有的数据。然而 ThreadLocal 在高并发环境下存在一些问题: (1)内存占用:每个 ThreadLocal 变量都会在每个线程中持有一个独立的副
阅读全文
摘要:1 前言 Arthas,应该大家都用过吧,比如我最近项目 uat 的时候,要查看某些请求比较耗时,查看耗时在哪些地方,再比如一些配置变量值配置的对不对尤其跟一些第三方交互的时候,配置的对不对需要实时查看校验下等,都可以通过Arthas 查看。 Arthas 地址:使用文档 Arthas 的下载:使用
阅读全文
摘要:1 前言 前面我看过了 ThreadLocal的实现机制和原理 以及 InheritableThreadLocal的实现机制和原理 两种类型的 ThreadLocal,前者是普通的,后者是在前者的基础上套了一层父子线程关系,当使用后者的时候,会在线程创建的时候,浅拷贝一份父线程的变量值。那么今天空了
阅读全文
摘要:1 前言 今天晚上看了一本 70 多页的讲解时间轮的 PDF,从是什么为什么以及原理到源码中的应用分析,讲的真好。这节我就按我理解的思路捋一下,记录一下哈。 2 时间轮概述 2.1 时间轮是什么 时间轮是一种高效利用线程资源进行批量化调度的一种调度模型。把大批量的调度任务全部绑定到同一个调度器上,使
阅读全文