自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MQ 异步场景下,如何优雅实现用户上下文无感传递

作用:告诉 AOP—— 这个消费方法需要自动处理用户上下文。java// 消息头里的key,统一约定统一编程体验同步 / 异步都用,不用两套写法。无侵入业务代码不传递、不解析、不设置用户,AOP 全包。安全可靠finally 块强制清除,线程池复用绝不串用户。可控制谁需要传用户,就加,不需要就不加。不污染消息体用户信息存在消息头,业务消息体干干净净,只存业务数据。

2026-03-04 13:07:12 206

原创 OpenFeign 全链路解析:从服务发现到连接池复用

定义 FeignClient接口Nacos 获取实例LoadBalancer 选址HttpClient 连接池取连接通过随机端口发送请求归还连接到池中。掌握了这一整套链路,你就不仅会写,更能在系统出现性能瓶颈或连接报错时,从底层原理出发找到解决方案。

2026-02-03 19:08:19 459

原创 微服务性能优化的基石:深度解析连接池(Connection Pool)

连接池不仅是提升响应速度的“加速器”,更是保障微服务稳定性的“稳压器”。在生产环境中,将 OpenFeign 默认的替换为HttpClient或OkHttp,并合理配置连接数,是每一位后端开发者的必修课。

2026-02-03 17:28:29 1140

原创 MyBatis-Plus 核心分层设计:BaseMapper 与 IService 单表操作的本质关联

当需要为单表操作添加通用业务逻辑时,直接在 Service 实现类中重写 IService 的对应方法,在方法中添加业务逻辑后,调用父类的方法完成数据库操作,实现 “业务逻辑 + 数据操作” 的统一封装。MyBatis-Plus 中和的单表操作方法,并非重复设计,而是分层设计原则下的上下游协作关系本质关联:IService 的单表操作方法是对 BaseMapper 对应方法的纯上层封装,底层最终都会调用 BaseMapper 的原子方法执行,二者实现的核心功能完全一致;设计目的。

2026-01-28 21:57:22 887

原创 深度解析:微信小程序登录时,用户信息是如何传递到后端的?

openid:在后端第一次用code向微信兑换时,就直接传递到了你的后端。用户真实信息:只有在用户主动授权后,才会通过加密的方式,由小程序传递到你的后端,再解密获取。

2026-01-19 18:56:54 507

原创 Spring AOP 通知返回值规则详解:为什么只有 @Around 需要返回 Object?

Spring AOP 通知的返回值规则,本质上是由通知的功能定位@Around是 “全能型” 通知,需要承载和传递目标方法的执行结果,因此返回Object;其他通知是 “辅助型” 通知,仅做前置 / 后置增强,无需返回结果,因此默认返回void。掌握这个规则,不仅能写出更规范的 AOP 代码,还能在实战中(如字段自动填充、日志记录)精准选择合适的通知类型,避免踩坑。

2026-01-15 10:40:53 824

原创 吃透 Spring Bean 手动注册:@Bean、@Import 与 @EnableConfigurationProperties 实战解析

如果无参对象需要添加初始化逻辑(如设置默认值、初始化内部属性),@Bean是更优选择。实战示例:java@Bean// 自定义初始化逻辑:设置默认超时时间带参对象:直接用@Bean,支持依赖注入和自定义创建逻辑,这是实际开发中的最优解;无参对象无需初始化逻辑 → 用@Import,简洁高效;需要初始化逻辑 → 用@Bean,灵活可控;配置属性类(带 @ConfigurationProperties):用,语义规范且支持自动配置绑定。

2026-01-11 20:01:20 1120

原创 从一次会话到同源验证:彻底搞懂 Web 前端后端交互的核心逻辑

前后端分离架构下,一次会话通常只请求一次前端服务器,后续交互直连后端;跨域判断看 URL 三要素,和浏览器 IP 无关;IP 负责数据传输,URL 身份负责请求权限;多用户共用前端 URL 靠 Session ID 区分,同源策略保护用户数据不被非法窃取。理解这些底层逻辑,不仅能帮我们快速解决跨域、会话管理等问题,更能构建起扎实的 Web 安全知识体系。

2026-01-10 10:14:27 1112

原创 MyBatis 嵌套 ResultMap:主表合并、副表追加的底层逻辑

MyBatis 嵌套ResultMap主表:按<id>合并对象,非<id>字段 “后读覆盖先读”;副表:只追加到集合,不合并、不覆盖,<id>仅提升性能。理解这个逻辑,就能避免一对多查询中 “主对象重复”“字段被覆盖”“集合数据丢失” 等问题。

2026-01-09 21:38:31 1049

原创 MyBatis+Java Stream 开发避坑指南:从 SQL 语法到类型转换全解析

SQL 编写CASE WHEN必须闭合END,字段赋值用 SQL 标准语法(避免 Java 语法迁移),聚合函数结果注意类型;MyBatis 使用:实体类必加无参构造,根据结果数量选择,复杂映射用 ResultMap;:Lambda 表达式语法要规范,单行隐式返回、多行显式 return,及时过滤 null 值;类型转换:避免 Long 与 Integer 直接强转,用intValue()或CAST函数转换,数据库返回值优先用对应类型接收(如 Long 接收 COUNT 结果)。

2026-01-09 21:36:12 652

空空如也

空空如也

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

TA关注的人

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