Java线程之前数据传递的方案 发表于 2025-04-08 更新于 2025-04-09 分类于 Java 本文字数: 7.6k 阅读时长 ≈ 7 分钟 引言在日常开发中经常遇到这样一个场景:在拦截器中对用户做统一的鉴权,鉴权通过后将当前登录用户的信息ThreadLocal使用存储在当前线程中,方便后续业务代码中使用。但有时,执行的业务比较耗时,我们会将业务执行逻辑封装到由@Async标注的异步方法中或提交到线程池中执行,这时在执行业务代码会无法获取到之前缓存的用户信息,因为线程已经发生了切换。那么,我们改怎样将任务提交任务线程缓存的数据传递给执行线程呢? 阅读全文 »
《Head First设计模式》读书笔记--观察者模式 发表于 2021-04-13 更新于 2025-04-09 分类于 读书笔记 本文字数: 503 阅读时长 ≈ 1 分钟 什么是观察者模式 观察者模式在对象之间定义一对多的依赖,当一个对象改变状态,依赖它的对象都会受到通知。 观察者模式有两个角色:“主题”和“观察者”。观察者只需要在主题处注册,当主题状态发生变化的时候,就会主动通知观察者。这种实现方式,既使得观察者能及时获取到主题的变化,也简化了观察者的实现逻辑(不需要去不停地轮询,判断主题状态是否发生变化),同时减轻了主题的压力,因为观察者的轮询会造成性能损耗。 阅读全文 »
《Head First设计模式》读书笔记--策略模式 发表于 2021-04-07 更新于 2025-04-09 分类于 读书笔记 本文字数: 789 阅读时长 ≈ 1 分钟 背景介绍现在有一款鸭子模拟游戏:SimUDuck。游戏中会出现各种鸭子,一边游泳一边呱呱叫。 设计很自然的可以想到,先设计一个Duck父类,并且包含两个实现好了的方法swim和quck。并且对于不同鸭子,有着不同的外观,所以需要一个display方法来描述鸭子的外观。于是乎,得到了下面这么一个抽象类Duck以及一些它的子类: 阅读全文 »
二叉堆及堆排序 发表于 2019-08-07 更新于 2025-04-09 分类于 算法 , 数据结构 本文字数: 4.4k 阅读时长 ≈ 4 分钟 二叉堆概述二叉堆(下文简称为堆)是一种优先队列,对于一个优先队列应该至少包含insert(插入)和deleteMin(删除最小者)两个操作。堆具有 结构性 和 堆序性 两个性质。 阅读全文 »
归并排序(Merge Sort) 发表于 2019-08-05 更新于 2025-04-09 分类于 算法 本文字数: 2.2k 阅读时长 ≈ 2 分钟 概述归并排序是一种时间复杂度为$ O (N\log N) $的排序算法,使用的是 分治 的策略。算法的基本操作是合并两个已经排序的序列,因为两个序列是已经排序了的,所以将它们按顺序复制到第三个序列中,可以通过一次遍历完成。所以将原序列使用递归不断的分成两个子序列,直至序列中是元素个数为1,此时序列为已经排序完成的,将两个子序列合并,得到一个排序完成的序列,再继续合并,直至整个序列都是已排序的。 阅读全文 »
Spring Boot项目打包成jar部署读取Resources下的文件 发表于 2019-07-09 更新于 2025-04-09 分类于 Java 本文字数: 1.1k 阅读时长 ≈ 1 分钟 起源Spring Boot项目打包成jar部署时,发现平时使用读取Resources目录的文件报错了,无法正确读取到文件。 阅读全文 »
Idea常用快捷键 发表于 2019-05-29 更新于 2025-04-09 本文字数: 553 阅读时长 ≈ 1 分钟 插件推荐推荐大家安装IDE Features Trainer这款插件,插件通过示例帮助我们记忆各种常用的快捷键,以下收录的快捷键都是插件中提及的。 阅读全文 »
一个Perl模块的编写方法 发表于 2019-05-13 更新于 2025-04-09 分类于 Perl 本文字数: 2.3k 阅读时长 ≈ 2 分钟 起源最近在工作中需要一些Perl脚本,发现目前项目中脚本的公共功能的复用做得很差,并且现存的复用脚本也只是使用require "/your/path/your_script.pl";简单的引用,并没编写成模块(.pm),安装到@INC目录中。于是就有了这篇博文。在介绍模块编写方法之前,我们先来说说两种加载模块的方式。 阅读全文 »
Let's Encrypt HTTPS证书申请、安装及自动续期 发表于 2019-03-28 更新于 2025-04-09 分类于 HTTPS 本文字数: 2.7k 阅读时长 ≈ 2 分钟 概述由于新版本的Chrome对于非HTTPS网站都会提示不安全,十分影响使用体验,所以打算把博客站点升级到HTTPS。 运行环境此博客系统的运行环境是阿里云Ubuntu14.04(不记得当初买ECS的时候为什么会选这个版本,可能是忘记选了吧😂),Nginx, Spring Boot。 阅读全文 »
第一篇博文--记录搭建过程遇到的问题 发表于 2019-03-23 更新于 2025-04-09 分类于 Java 本文字数: 1.8k 阅读时长 ≈ 2 分钟 此博文是从之前自己搭建的博客系统中迁移过来的。 起源在2017年12月底,当时兴起了一个搭建自己的博客想法,然后买了服务器,开始着手搭建。但是后面由于种种原因搁置了(其实就是自己的拖延症😂)。之后断断续续写了一点代码,直到今年年后,才真正开始。 项目相关首先此博客系统是根据Tale修改而来,主要是将后台实现替换成了Spring Boot+MyBatis+FreeMarker,在此也要感谢Tale的作者@biezhi写出了这么棒的项目。 阅读全文 »