- 博客(139)
- 资源 (16)
- 收藏
- 关注
原创 org.aopalliance.intercept.MethodInterceptor
它的核心价值是:不改原方法代码,在方法执行前、后插入通用逻辑,例如计时、日志、鉴权、异常处理和重试。因此,MethodInterceptor 是调用链上的增强层,连接池才是这次异常的靠近故障点。invoke() 负责定义增强逻辑,proceed() 负责让调用链继续往下走。因此,proceed() 不一定直接调用目标方法:如果还有下一个拦截器,就先进入下一个;MethodInvocation 当前方法调用本身,包含方法、参数、目标对象等,并负责继续执行调用链。// 执行下一个拦截器,最终执行目标方法。
2026-11-04 12:50:53
80
原创 Decorator
TaskDecorator 是异步场景下"跨线程传递上下文"的标准方案,主要用于传递 MDC、用户信息、数据源路由等上下文数据,核心价值是让异步任务的日志链路不中断、业务上下文不丢失。TaskDecorator 是 Spring 提供的一个钩子接口,用于在异步任务执行前对 Runnable 进行包装,常用于跨线程传递上下文。如果你在项目中遇到具体的异步上下文传递问题,可以把代码贴出来,我帮你给出最合适的 Decorator 方案 👍。✅ 核心能力:在线程切换时,把"父线程的上下文"搬到"子线程"
2026-11-03 15:47:30
98
原创 ThreadPoolTaskExecutor
org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor 是 Spring 对 Java 原生线程池(ThreadPoolExecutor)的封装和增强,广泛用于 异步任务、并发执行、任务解耦 等场景。ThreadPoolTaskExecutor 是 Spring 提供的一个可配置、可管理的线程池实现,底层基于 JUC 的 ThreadPoolExecutor。下面从 原理、优点、缺点、适用场景、对比、使用建议 几个方面系统解读。
2026-11-02 10:37:11
162
原创 org.springframework.context.ApplicationListener
org.springframework.context.ApplicationListener 是 Spring 事件机制中的核心接口,用于监听并处理 Spring 容器发布的事件(ApplicationEvent)。ApplicationListener 是 Spring 事件机制的核心接口,用于监听容器或业务事件,实现组件解耦、生命周期管理和事件驱动架构。• 所有监听该事件的 ApplicationListener 都会被回调。监听 Spring 容器中的特定事件,并在事件发生时执行相应的逻辑。
2026-10-30 19:37:27
180
原创 替换11111
在执行该命令后,vim将扫描整个文件中的每一行,并将第一个匹配到的“abc”字符串替换为“xyz”。如果当前行有多处匹配,将一直提示用户是否替换,直到用户确认或者取消。如果用户选择替换,vim会继续扫描接下来的位置执行替换操作,直到文件末尾。另外,如果你希望在执行替换操作过程中观察文件的变化情况,可以使用:set list命令将空格、Tab符等特殊字符显示出来。Tab 显示为 ^I,行尾显示为 $,空格显示为 ·关闭显示 :set nolist。
2026-09-21 16:05:22
164
原创 ImmutableBiMap
结合你前面大量在用的 蚂蚁 LDC / Mock / 网关 / 映射配置 场景,我直接给你讲清楚 它是什么、什么时候该用、什么时候千万别用。ImmutableBiMap 是 Guava 提供的「不可变 + 双向 + value 唯一」的 Map,非常适合枚举、状态码、字段映射等“静态双向查找”场景;ImmutableBiMap = 不可变(Immutable) + 双向 Map(BiMap)// ❌ 编译期就报错(无该方法)✅ 2. 编码 / 协议字段映射(网关 / Mock)
2026-09-17 10:36:57
129
原创 youtube=
https://github.com/yt-dlp/yt-dlp/releaseschmod +x /usr/local/bin/yt-dlp
2026-05-25 23:17:10
24
原创 http-SNI
SNI 是 TLS 扩展,用于在握手时告知服务器客户端要访问的域名。Apache HttpClient 默认支持 SNI,能自动从请求 URL 中提取主机名并发送。通常你不需要为此做特殊配置,但自定义 SSL 连接工厂时应避免禁用 SNI 功能。这样,你的 Java 应用就能正确地与现代 Web 服务器建立安全的 HTTPS 连接。
2026-02-25 19:23:12
811
原创 nginx- $connection-$connection_requests
作用和意义:• 唯一标识当前TCP连接:$connection 是Nginx为每个TCP连接分配的一个递增的数字ID(从1开始)• 在worker进程内唯一:这个ID是在每个Nginx worker进程内部唯一的• 标识整个连接生命周期: 同一个TCP连接在整个生命周期内,这个ID保持不变 作用和意义:• 记录连接复用次数: 表示当前TCP连接上已经处理过的HTTP请求总数 • 递增计数:每当这个连接处理一个请求,计数器就加1• 监控连接复用效率:数字越大,说明连接复用效果越好
2026-02-10 14:35:11
73
原创 PowerMockRunner-MockitoJUnitRunner-SmartRunner-对比
我们首先需要理解这三个类的作用和它们各自的使用场景。
2026-01-19 10:30:32
865
原创 org.apache.commons.beanutils.BeanUtils#populate
/ 注册日期转换器// 现在可以转换日期格式的字符串是一个非常实用的工具方法✅ 实现了 Map 到 JavaBean 的自动映射✅ 支持类型自动转换✅ 简化了数据绑定代码✅ 在传统 Web 开发、配置文件解析等场景广泛应用在现代 Spring Boot 应用中,通常使用或 Jackson 进行数据绑定,但在某些遗留系统或特定场景下,BeanUtils.populate 仍然是一个有价值的选择。
2025-12-20 17:13:48
933
原创 `org.springframework.util.ClassUtils#forName
是 Spring 提供的一个增强版的类加载工具✅ 支持基本类型、数组、内部类等多种格式✅ 提供更友好的异常处理(非检查异常)✅ 支持灵活的类加载器指定✅ 在 Spring 生态中广泛使用,特别是配置解析、动态代理等场景在 Spring 项目中,优先使用而不是,可以获得更好的兼容性和更简洁的代码。
2025-12-20 17:09:25
329
原创 java.lang.Class#isAssignableFrom(Class<?> cls)
是一个非常重要的反射方法,用于检查类或接口之间的继承/实现关系。判断调用该方法的 Class 对象所代表的类/接口,是否与参数传入的 Class 对象相同,或者是它的父类/父接口。简单记忆: 检查:A 能否从 B 赋值而来(B 是否是 A 的子类型)口诀:与 的区别特性操作对象Class 对象(反射)对象实例编译时检查无,运行时检查有,编译时检查类型兼容性示例用途场景框架、反射、动态类型处理日常编程中的类型检查实用场景1. 框架中的动
2025-12-20 17:07:31
474
原创 org.springframework.web.bind.annotation.RequestMapping
您写的语法正确且实用匹配所有以v开头后跟任意字符的版本前缀支持任意深度的子路径适用于多版本API路由场景这种模式在微服务架构和API版本管理中非常有用!
2025-11-26 10:29:19
157
原创 spi-各类含义---
运行时加载实现。为什么要在 META-INF/services 目录下建立文件呢,跟踪源码,在 ServiceLoader 类中可以看到有这个前缀定义,到这你可以看出这是一个约定俗成的事情。where?SPI 最常用的场景就是标准定义与实现解耦,运行时加载实现。原理?说白了,就是运行时在指定的目录下加载对应的文件,读取文件中的内容,然后实例化对应的类。...
2025-11-21 10:43:19
994
原创 idea maven Sync All Maven Projects 和 Reload All Maven Projects 两个选择项的区别,以前似乎只有一个选择啊
在 IntelliJ IDEA 中,和。
2025-11-20 17:28:43
669
原创 设计原则-工作经验-日常
software engineering 项目软件问题database administrators 数据库问题系统问题 ask ubuntu | unix& linux。
2025-07-04 15:24:46
1165
原创 uri-url-HttpServletRequest
是 Spring 框架中用于处理 HTTP 请求路径的一个工具类,它帮助解析和处理与请求路径相关的细节。提供了一个灵活且精准的方式来解析请求路径,帮助开发者在 Spring 应用中处理基于路径的逻辑和路由。方法,能够获取到与当前请求匹配的路径,通常用于基于 URL 的路由和控制器匹配。在 Spring 和 Java Web 应用中,是两个常见的路径概念,它们定义了应用和特定。在这个例子中,应用的上下文路径被设置为。和 Servlet 路径中的。开头才能路由到该应用。
2025-07-04 15:22:59
1179
原创 redis面试
缓存穿透,就是穿透了redis 打到了mysql上,可以加锁,让查询不到redis的操作暂时等待,加锁后,查询到数据,放入redis,解开锁就可以了。所以惰性淘汰机制就起作用了,当访问redis的key到来,redis查询到数据,先检查是否已经过期,如果过期delete数据;list 存储很火热的文章,我使用list作为队列使用,因为取得队列两端的数据是非常快速的,时间复杂度为O(1)2 我们的做法是在原有的设计的失效时间基础上,随机加上一个1 - 5 分钟的随机时间,让失效时间更加的。
2025-07-04 15:16:05
623
原创 ThreadLocal
当 ThreadLocal 对象没有外部强引用时(比如我们设置 ThreadLocal 变量为 null),在垃圾回收时,由于 Key 是弱引用,会被回收,但是 Value 仍然是强引用,而 Value 的引用链是:CurrentThread -> ThreadLocalMap -> Entry -> Value。如果前一个任务使用 ThreadLocal 存储了数据,并且在任务结束时没有清除,那么下一个任务可能会读取到前一个任务存储的数据,从而导致数据污染。在使用线程池时,一定要在任务执行完毕后调用。
2025-07-04 15:14:06
824
原创 hutool CollUtil coll Str Util
和 python 的range一样玩法Collection<Integer> c = NumberUtil.appendRange(0,1000,1,CollectionUtil.newArrayList());range 一些 对象import cn.hutool.core.lang.Range; /** * 增加步进<br> * 增加步进后的返回值如果为{@code null}则表示步进结束<br>
2025-07-04 15:09:35
355
原创 vue语法
与 Vue 2 中的 props 不同,Vue 3 中的 props 使用 defineProps 定义后是只读的,即不能像 data 或 computed 属性那样修改它们的值。在Vue2中,可以通过vm.$options访问组件实例对象,但在Vue3中,由于组件实例对象不再挂载在vm上,因此需要使用getCurrentInstance()来获取当前的组件实例。和普通的数组 some 方法不同的是,Vue 3 的 some 方法会追踪响应式数据的变化,并在满足条件的元素发生改变时更新视图。
2024-04-13 21:20:12
1226
1
原创 不熟悉的快捷键
ctrol option o optimize code (优化导入)ctrol cmd o 各种格式 (牛逼)cmd + del 删除一行。
2023-05-05 23:33:33
226
原创 关于免费申请SSL的新方式
三消项目的ssl过期后,在一段时间内造成了服务不可用的问题,解决方式有三种,一种是手动部署nginx和填写DNS后用cerbot命令生成,一种是acme模式,最后一种是使用https://freessl.cn网站协助生成。本文介绍第三种方式,过程简单,使用稳定。
2023-04-19 10:20:42
401
原创 编程-常识cs
Unicode字符集是用来支持世界上的所有的语言的,ASCII字符集只是它的一个子集,确切的说,它是Unicode字符集的前255个字符。Unicode字符集的字符常常用十六进制表示,例如‘\u0000’、‘\u0028’、‘\uffff’等。(universe-charactername)\u后面必须跟4个十六进制数字(不足四位前面用零补齐),表示Unicode中在0至0xFFFF之内的码位(但不能表示0xD800到0xDFFF之内的码点,Unicode标准规定这个范围内的码位保留,不表示字符);...
2022-07-16 19:37:05
927
原创 vim-基础-技巧
光标的移动需求方式备注到文件末尾大写的字母G命令跳到文件尾到文件的startgggg移动到行首ovim一共有4个模式:正常模式 (Normal-mode) —esc 或者双击esc进入–作用: 跳来跳去,跳动的范围从小到大是字符单词、行、句子、段落和屏幕插入模式 (Insert-mode)--------i 进入命令模式 (Command-mode)------q! 强制退出 --冒号
2022-07-14 14:32:06
614
原创 mac-brew-order-ls-ll
brew/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"mac 下使用ll命令vim ~/.bash_profile// oropen ~/.bash_profilealias ll='ls -alF'alias la='ls -A'alias l='ls -CF'保存后:source ~/.bash_profile
2022-04-29 14:38:39
459
原创 无情替换JSON 中的数据
无情替换JSON 中的数据import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import java.util.Map;public class WJsonUtil { /** * 获取指定json属性对应得数据 * * @param objJson * @param reg * @return */ publi
2022-03-30 18:06:13
1883
原创 Mac-项目开发环境搭建path-xdebug
jdk 安装click绘图画图工具:clickidea mac 2020.03破解click;mac 安装 mavenclick
2022-01-11 17:03:55
236
原创 Netty-面试
什么是Netty 为什么使用使用 有什么优点Netty是基于java nio封装而来的同步非阻塞 通信框架;优点是使用了nio,通信效率高,而且支持大量的并发通信;nio是单线程 监控多个 channel注册到 selector;selector轮询检查selector是否准备好读写,准备后了进行读写;nio 在linux内心做了磁盘到内存的映射,速度非常快nio使用的是epoll多路复用机制,使用的数据结构是hash表,时间复杂度为O(1),效率比poll和select的效率高;Nett
2021-12-15 15:38:29
159
原创 @-springboot-zj-spring-各种注解的解释
@ConditionalOnPropertyvalue 参考kudu-startername属性,name用来从application.properties中读取某个属性值value 数组,获取对应property名称的值,与name不可同时使用@Qualifier在Controller中需要注入service那么我的这个server有两个实现类如何区分开这两个impl解决:Qualifier的意思是合格者,通过这个标示,表明了哪个实现类才是我们所需要的,添加@Qualifier注解,需要注意
2021-08-24 11:29:45
1392
1
原创 springmvc-调用链路
根本链路参考: click会为该请求创建一个过滤器链,过滤器中的过滤器都执行完之后,才会调用Servlet的service方法,如果我们使用SpringMVC的话,最终调用的是DispatcherServlet的doDispatch方法,在该方法会根据当前请求路径、请求头、请求参数等信息确定执行处理器handler(也就是我们的Controller的类中配置了@RequestMapping注解的方法),此时返回的handler是HandlerExecutionChain处理器执行链,该执行链中含适用的拦
2021-07-12 16:43:22
600
原创 依赖-yl-常用的jar包--yn
fastjson<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.76</version> </dependency>
2021-05-19 10:07:15
336
https://github.com/HackyleShawe/RemoteLogViewer https://github.com/HackyleShawe/RemoteLogViewer
2026-05-25
PopClip for Mac v2024.5.1 增强型复制粘贴工具 激活版 - M芯片
2024-07-05
springboot--mybatis枚举自动转换实现.rar
2020-05-23
m3u8需要生产win的bat进行视频文件的批处理(ts有加密).zip
2020-02-21
springboot +tkmybatis + generator+单元测试.zip
2019-08-15
查询身份证的归属地,包括省、市、区县(2019年最新版,包括前面几十年的数据,最全,内容为mysql数据).zip
2019-08-26
baregrep+baregreppro+WindowsGrep23.zip
2019-08-26
log-intercepter.7z
2020-05-05
邮件测试项目.zip
2019-07-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅