type
Post
status
Published
date
Feb 22, 2025
slug
slwl-day02
summary
tags
复盘
项目
开发
category
复盘笔记
titleIcon
password
icon
insider
Validated自定义AOP
两种异常 Advice全局异常处理
@RestControllerAdvice
@ExceptionHandler(ValidationException.class)@Resource @Autowired
Java标准vs Spring标准

Nacos配置共享与覆盖
单机日志logback.xml
通过加入一个@Builder
会出现以下错误
数值没用枚举 在范围内其他暂无意义的值可以随便插入()
实际上并没有多个

(多条记录实现 但共用一套模版时?)
新增或更新运费模板业务修改
业务思路补充解释:
假设传过来id为1类型为B的记录:
有id→修改行为 查询id≠1的所有B类型记录 没有插入
有则判断 如果是非经济区 即为重复
场景为:id为1类型为A的记录 希望修改为B类型 但B类型已存在 拒绝修改
存在问题:如果是经济区更新操作,数据库已有的关联城市为2,本次修改为2,3,修改就是不可能(经济区可以接受多个关联城市)。
如果传入2,3 则因为交集 被拒绝修改
如果传入3 会按照覆盖更新处理,会2 → 3
应该每次传入DTO后排序关联城市List,最后join成字符串保存,这样交集的逻辑就改为字符串相等判断,此场景下传入2,3更新直接覆盖2

根据体积参数与实际重量计算计费重量业务规则引擎
职责链模式
缓存 id 大key数据
缓存重复(A→B B→A)需要对组合进行排序
若加入自定义 不可用 同时查询两个
Day02练习参考
删除
缓存与自定义模版
并发计算压力
带宽占用
服务端hutool base64 → 客户端生成
UT测试结果
Redis数据结果
更新后删



职责链模式确定模板
引入依赖与配置

设计思路
1.上下文:除开同城模版,其他模板的处理链都需要使用寄与收的省份Id,要避免链上每个节点请求Redis,在原本的DTO对象包装一层上下文,用于存放两个省份Id,只在第一次需要使用时进行请求(职责链里的共享状态)。
2.后续的运费计算中只涉及到三个字段的使用,也不存在修改的需求,只筛选出所需要用到的字段转JSON字符串存储Redis。
3.缓存一致性,修改saveOrUpdateDTO方法更新数据库后删除模板缓存(城市id到省份id映射一般不变)。原则上可以暂缓请求
4.可能的缓存穿透,由于修改并不频繁重复更新不会引起数据错误,但更新Redis操作目前没有上锁,可能使得并发下热点城市更新线程较多。
5.缓存内容:a.城市Id到省份Id映射 b.以类型+运输类型+关联城市为key对应的模板数据(三个字段)
实现
相关UT与效果
UT
1.创建上海与安徽合肥间的跨省模板(自定义类型)
2.更新上海与安徽合肥间的跨省模板

执行效果



Redis相关数据
城市到省份映射x2 + 模板数据x1 均为string类型

删除缓存后

城市到省份映射
前缀+城市id为key 省份id为value
上海

安徽合肥

模板数据

MySQL数据


- 作者:CamelliaV
- 链接:https://camelliav.netlify.app/article/slwl-day02
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

.png?table=block&id=1a7ca147-5df8-80a2-b770-d7edff208773&t=1a7ca147-5df8-80a2-b770-d7edff208773)



.png?table=block&id=2b3ca147-5df8-80c8-94b3-f9c89b454622&t=2b3ca147-5df8-80c8-94b3-f9c89b454622)


![[2026.2.10]CachyOS调校历程](https://www.notion.so/image/attachment%3A76369e3c-58f3-4acb-951f-4bd2a6546a51%3A114518297_p0.png?table=block&id=2c1ca147-5df8-8010-b740-d61e13162107&t=2c1ca147-5df8-8010-b740-d61e13162107)

![[2026.3.2]yt频道推荐](https://www.notion.so/image/attachment%3A0a6b5565-ea86-4e43-8506-68a5c3516d94%3AKonachan.com_-_399774_braids_ema3_original_wings.jpg?table=block&id=2b3ca147-5df8-80ba-ae4f-e0b67a73aab7&t=2b3ca147-5df8-80ba-ae4f-e0b67a73aab7)
_rella_ribbons_vocaloid.jpg?table=block&id=204ca147-5df8-80cd-a13b-ff8c8b8128ab&t=204ca147-5df8-80cd-a13b-ff8c8b8128ab)