自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Spring】通过Spring收集自定义注解标识的方法

需求:用key找到对应的方法实现。使用注解的形式增量开发。任意时刻都能通过key来进行依赖查找@TestAssert.notNull(myBeanFactory.getMethod("key1"), "key1对应的方法不能为空");声明自己的类注解,并要求被 Spring 收集声明自己的方法注解,确保可以通过反射获取借 Spring 的能力,容器启动收集bean完成后,把bean列表交给自己,用于自己的收集策略。

2024-03-31 20:13:31 482 1

原创 【前端】夯实基础 css/html/js 50个练手项目(持续更新)

发现一个没有用前端框架的练手项目,很适合我这种纯后端开发夯实基础,内含50个mini project,学习一下,做做笔记。项目地址:https://github.com/bradtraversy/50projects50days。

2024-02-21 18:02:20 1303 1

原创 【Linux】日志命令行练习(持续更新)

公司生产问题需要登录堡垒机排查。由于没有日志平台,但是生产问题要求相应迅速,这里积累下常用的命令。

2024-02-21 12:36:44 476

原创 【Linux】主机搭建 Linux服务器环境 笔记

过年买了个 mini 主机当玩具玩一下,这里记录下。

2024-02-19 16:47:12 546

原创 【Apollo】阿波罗使用占位符 #{} 的异常分析

出于线上 hotfix 报文请求模板的考虑,新增一个阿波罗配置,取值形如:重启后服务宕机,影响较大。现本地复现一下这个异常,并加以分析。

2024-01-07 18:01:12 953

原创 【Java】Java8 Function 和 Consumer 接口的使用场景

在 《精通Java8》一书中有讲过 Java8的函数式接口可以简化设计模式的实施,这里记录一下Function 和 Consumer 的使用场景。JDK介绍,第一个泛型表示输入类型,第二个类型表示输出类型。输入是原价输出是经过价格策略处理的现价JDK介绍,apply方法接受输入,产生输出。方法实现就是价格策略构造方法把策略传入,同样的策略可以多次使用所有代码/*** 价格处理策略*/JDK介绍,一种避免副作用的函数式接口。

2023-11-12 13:22:39 347

原创 【源码】hamcrest 源码阅读 定制 Matcher

官方文档官方示例:(打开后搜索 Writing custom matchers)需求按官方的规范拓展自己的 Matcher将自己的 Matcher 加入到现有的谓词用法里 (allOf 、anyOf 等)

2023-10-07 15:22:15 111

原创 【源码】hamcrest 源码阅读 泛型 extends 和迭代器模式

官方文档上篇文章Hamcrest 源码阅读及空对象模式、模板方法模式的应用本篇文章迭代器模式hamcrest 作为一个matcher库,把某个matcher的职责打印出来,可以方便开发者进行调试。

2023-10-07 11:30:23 261

原创 【源码】hamcrest 源码阅读 空对象模式、模板方法模式的应用

hamcrest ,一个被多个测试框架依赖的包。听说 hamcrest 的源码质量很高,特此来学习一下。建议fork原仓库,拉到本地看代码。代码仓库hamcrest github 仓库。

2023-10-02 13:58:46 1086

原创 【工具】idea 设置自动渲染注释

需求:想看代码的时候注释更加好看已知 crtl + alt + Q 可以。

2023-10-02 10:35:26 207

原创 【Log】为类中的所有日志打印添加前缀

有没有一种办法,在一个类中(业务逻辑)。的时候自动加上日志前缀,这样子查日志更方便。stackoverflow 上面有对该问题的讨论,实测可用,这里记录一下。来自stackoverflow 简洁可用的方式。

2023-09-24 11:49:00 360

原创 【笔记】Spring Boot 历史官方文档学习(持续更新)

Spring Boot 2014正式发布1.0版本,距今已经快10年了。看历史官方文档了解重点feature, 帮助自己建立知识网络。与Spring 5 官网历史文档学习一样,尽量保证不误解文档作者的原意,不好翻译的会有原文摘录(包括一些专有名词),并辅以自己的理解。限于篇幅原因,只摘录工作中遇到过的或者是有兴趣的。

2023-09-05 21:51:00 435

原创 【网络安全】理解报文加密、数字签名能解决的实际问题

工作中重新接触了 【公钥、私钥、签名】的概念。抽空重新看了《计算机网络》和国外的小黑书,把这块基础知识再收敛一下。防止报文泄露防止报文被篡改实体鉴别端点鉴别防止重放攻击既然大报文消耗性能,能不能把报文弄小?思路其实就是摘要算法,常见的md5、sha-1就是摘要算法(也叫散列算法)。程序中的应用// 把签名拼接到密文后面,接收者再解析出签名,验签即可 密文 . 签名。

2023-08-26 14:27:03 1456

原创 【Mockito】@Mock 和 @MockBean 的区别与 @MockBean 的使用时机

由于历史原因,@Mock 和 @MockBean 都会出现在项目代码里,这里记录下具体的区别。并突出 @MockBean 在 Spring Boot 中的使用时机stackoverflow原文。

2023-07-03 22:38:45 1273

原创 【笔记】Spring 历史官方文档理解(持续更新)

原文:A point during the execution of a program, such as the execution of a method or the handling of an exception. In Spring AOP, a join point always represents a method execution.Core 的内容主要包括 IOC 和 AOP,Spring 有自己的 AOP 框架,能够解决 80% 的企业级应用的需求。编译时期、类装载时、运行时;

2023-06-24 17:33:48 450

原创 【Spring MVC】获取 @RequsetBody 标识的对象,使用适配器模式增加代码可读性

思考用 AOP 把校验代码实践用 Spring MVC 的 RequestBodyAdvice 做AOP逻辑继承 RequestBodyAdviceAdapter 实现自己的 适配器用自己的适配器让代码可读性增加熟悉 Spring MVC 、Java 反射的一些实践本文内容澄清一个AOP校验JSON内容的思路复习适配器模式。

2023-06-19 23:06:03 1852

原创 【Spring MVC】后端处理多文件上传如何保持最大的灵活性

如何根据版本号找官方文档后端如何声明Controller能保持较好的灵活性。

2023-05-22 22:16:22 973

原创 【工具】AlibabaPuHuiTi 阿里巴巴 普惠体 字体windows安装

阿里巴巴普惠体是商用免费的字体,项目上用到导出的功能,可以平替 “微软雅黑”。导出到pdf后,客户电脑虽然不需要安装这个字体,但是本地调试的时候可以安装一下。字体下载。

2023-04-22 18:33:57 3386

原创 【PostgreSQL】官网学习使用 PL/pgSQL编写造数据脚本

前段时间需要大量造数据,写Java程序做造数据的活感觉太笨重了,遂下班后学习了 PL/pgSQL 写脚本。公司用的是11.5的版本。按照官网的Manual,把下面的问题搞清楚,就能实现大部分的需求了,有其他经验的时候再来补充。如何声明、修改、删除一个函数如何在函数中声明与使用局部变量如何创建与使用类似 Java map 的数据结构如何使用循环等其他控制语句如何打印调试信息 (可以用来生成回滚语句)

2023-04-15 18:59:59 992

原创 【Spring MVC】try-with-resource 处理 response 造成 @ControllerAdvice 失效的结果分析

项目使用来做异常的兜底处理。但是实现一个下载需求的时候,即使服务端报错抛异常,也无法提供前端良好的响应,需要等文件下下来后,客户才发现是损坏的。当前情况 (服务端报错依旧让前端接收文件)期望情况。

2023-03-23 20:40:53 354

原创 【MySQL】explain 中列的取值及含义

今天看 《MySQL 是怎样允许的》和 《高性能MySQL》索引相关的部分,觉得有必要整理下 explain 中列的取值及含义。以后工作的时候翻阅查找更快。

2023-03-19 19:32:42 296

原创 【PostgreSQL】使用开窗函数获取历史表最新记录 及 MySQL 旧版本实现

项目用了 PostgreSQL 作为数据库。用上了一直感兴趣的开窗函数,这里记录以下。考虑到使用MySQL的项目也可能有这种需求,思考 MySQL 8.0 以前的实现方式(8.0开始就有开窗函数了,不用自己造轮子)。探索的过程中,把 User-Defined Variables 也学起来了,结合官网资料做一下笔记。

2023-03-19 19:20:56 1495

原创 【算法】笔记:LeetCode 206. 反转链表

这道题可以拆成几个小点去理解,本篇博文快速记录一下。有迭代和递归两种解法。迭代的解法空间复杂度更优秀,递归的思想更巧妙。这里主要总结下迭代的解法。并简要理解下递归的解法。LeetCode 206. 反转链表。

2023-03-04 14:46:02 439

原创 【MySQL】什么是意向锁 IS IX 及值得学习的思想

之前看 MySQL 都刻意忽略掉了 IS 和 IX 锁,今天看 《MySQL 是怎样运行的》,把意向锁讲的很通透,本篇博文提炼一下思想。I:Intention Lock(意向锁)S:SharedX: Exclusive。

2023-02-26 17:21:11 902

原创 【工具】MySQl 使用 concat 函数或 Excel 自定义回滚语句

写更新语句的时候,希望能保留回滚的能力,可以尝试使用 concat 语句。先拷贝出回滚语句,再执行脚本。

2023-02-21 22:42:56 159

原创 【工具】使用 sed 根据时间区间摘取日志

公司环境里面的日志是按文件大小分片的,我想找的日志只集中在几秒钟之内。用到了个小工具,现在记录一下。

2023-02-20 22:00:48 222

原创 【Java】《Java8 实战》 CompletableFuture 学习

看 《Java8 实战》后,觉得自己对多线程应用还是停留在 JUC 工具类的使用上,忽略了 CompletableFuture 这么强大的工具。本文主要内容复习并行、并发的概念。多线程的编程模型CompletableFuture 让多线程编程更加清爽有时间的话,补充 CompletableFuture 的内部原理这个类是 Java 8 引入的,用于解决FutrueFutrue 任务之间的依赖关系很难表达等待Futrue集合中的所有任务都完成应对Future的完成事件。

2023-02-19 19:59:51 970

原创 【Java】使用 Optional 让代码变得更清爽

今天看 《Java8 实战》 发现了 Optional 可以用来改善工作中的代码质量。本文用于巩固 Optional 的 api 积累及理解,并尝试多多应用于生产中。// 模拟VO Insurance insurance = new Insurance();// 模拟字段的数据源,通常是为了节省数据库IO, 由全量数据转化成的 key-value HashMap < String , String > properties = new HashMap < >();

2023-02-15 23:35:27 194

原创 【算法】笔记:LeetCode 3. 无重复字符的最长子串

今天写了一道题LeetCode 3. 无重复字符的最长子串,思路还是不难的。初始版本自己写的,看了别人的答案觉得自己写的太丑了。于是乎,借鉴《重构》的思想(LeetCode 提供测试用例和运行,保障重构安全,真是太好了),把自己的版本重构下,记录下过程。

2023-02-11 20:38:05 70

原创 【数据结构】布隆过滤器 BoomFilter 的应用场景

对比数据结构的区别,从其空间、时间复杂度下手观察。BoomFilter 特殊的地方在于它在元素存储上做了努力。本文归纳下 BoomFilter 与 HashTable 的区别,进而引出 BoomFilter 善于支持的应用场景。

2023-02-05 12:35:12 549

原创 【消息队列】RocketMQ 官网学习及理解胶水代码

前段时间看到项目在用 @Cacheable 注解,来自于 Spring intergation。Spring intergratoin 的项目灵感来自于 《企业集成模式——设计、构建及部署消息传递解决方案》。这本书提到的胶水代码、消息总线的系统集成方案都在RocketMQ 官网有描述 ,感觉写的挺好的。本文提供一个含有胶水代码的示例,理解下消除胶水代码的成本,及 EvenBridge 模式 的优点。代码仓库。

2023-01-17 23:25:06 597

原创 【MyBatis】RC隔离级别下,MyBatis 一级缓存、二级缓存造成的不一致情况

数据库的MVCC 及 锁机制保证了数据的隔离、一致性。而建立在数据库之上的缓存,都会破坏掉数据库的一致性保障。本文探索在RC隔离级别下,MyBatis 一级缓存、二级缓存造成的坑。顺便复习一下 Spock 的用法,更加体验到了 Groovy 清爽的语法。本文内容的代码仓(分支L1Cache 、L2Cache )MyBatis 官网缓存部分体验一下 Spock 的一个测试用例 (本文与Spring Boot 进行集成)def "RR环境下, 缓存不影响结果"() {

2023-01-11 21:11:01 957

原创 【消息队列】Centos7 虚拟机安装 RocketMQ 及启动控制台

模拟在服务器上运行RocketMQ,并且有控制台的能力。以后本地window可以边开发边连接虚拟机调试。记录下搭建过程方便以后重建。控制台启动效果。

2023-01-08 19:31:45 1990

原创 【Spring】Spring @Cacheable 官方学习及demo

Spring 有很多声明式的编程风格,@Transactional 是,@Cacheable 也是。说起 @Transactional,复杂的事务情况下,这个注解也有局限,需要用到编程式的事务完成需求。同样地,@Cacheable 也是适合简单的缓存场景。

2022-12-29 22:25:47 405

原创 【阅读笔记】《持续交付2.0》中理解分支、发布策略

这本书扫盲了 “交付” 的方法论。之前工作过的公司都不会仅仅用一种方法。包括但不限于敏捷、极限编程。所有理论都是因地制宜的,公司往往不会是纯粹的xx理论遵循者,比如团队中既有 Scum master 角色(来自敏捷),也用 User Story 管理需求 (来自极限编程)。方法都是发展过来的,永远保持学习的心态。本文主要整理下书中出现的分支策略,并加以理解。如果分支策略更好的支持持续交付,则认为这种策略是有前景的。

2022-12-25 19:23:38 764

原创 【阅读笔记】《人月神话》思想提炼

由于《代码大全2》好几处引用了 《人月神话》的的内容,遂周末把《人月神话》看完了。总的来说,这本书更适合有管理经验的人阅读。目前我还处于开发人员的角色,学习软件工程为初衷,保持一个学习的心态总结本书有趣的思想。值得一提的是,这本书要完完整整的看完,后续的章节会对前面的章节进行补充。不进行章节的重写而是通过补充的手法,猜测其背后的原因是保留了那个年代的上下文语境。

2022-12-12 01:04:32 666

原创 【高并发基础】理解 MVCC 及提炼实现思想

MVCC 在 MySQL、Oracle、PostgreSQL 都有应用,用于实现事务的隔离特性。现在结合 《MySQL是怎样运行的》的内容理解、归纳、整理下MVCC的实现及思想。Multiversion Concurrency Control 对版本并发控制。对于同一行数据,会根据不同事务的DML操作参生不同的版本,让不同事务各自维护自己能看到的版本从而做到事务隔离。每次操作数据库都会生成日志,那么就可以把同一条记录的多次操作记录按时间顺序链接起来。按事务开启的时间顺序,为事务颁发一个Id,从而维护“版

2022-12-04 18:44:25 581

原创 【Git】fork 出的仓库拉取源仓库

公司代码托管平台换到了gitlab。采用了新的合并策略,这里总结一下流程。从上线分支fork自己的库开发人员的特性分支都是从上线分支 fork 出来的,上线前都在自己库进行推拉。上线的时候从特性分支提交 pull requests代码审核通过后 merge pull requests 进上线分支如何保证自己的代码是最新的(其他特性上线完成后会要体现到本地)

2022-11-30 22:57:53 939

原创 【Git】rebase 和 merge 的区别

今天想把本地的两个提交压缩成一个提交,再推送到远程。用的是rebase命令解决的,于是乎又捡起了之前的遗留问题:rebase和 merge 有什么区别?用的是idea内置的git插件,先把idea官网对 “update project” 选择 “merge” 或 “rebase” 的等价命令行掌握。

2022-11-29 23:14:44 1331

原创 【React】使用 react-pdf 将数据渲染为pdf并提供下载

最近看了Thoughworks 官网的能力雷达功能,如下图的页面,可以把页面的数据渲染到pdf并用于下载。作为一个Java程序员,这个功能引发了我的思考: 如何较低成本实现这个功能?Java 可行吗?—— 可行,有api,但是github上没有star比较多的项目,自己封装底层操作pdf的api比较费劲。前端可行吗?考虑前端的初衷是因为前端已经拿到数据了,如果前端能够独立处理,就没必要把同样的数据再传到Java后端github上搜了下react-pdf。

2022-11-27 20:50:41 4085

空空如也

空空如也

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

TA关注的人

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