type
status
date
slug
summary
tags
category
titleIcon
password
icon
calloutIcon
1️⃣
 

Validated自定义AOP

两种异常 Advice全局异常处理

@RestControllerAdvice @ExceptionHandler(ValidationException.class)

@Resource @Autowired

Java标准vs Spring标准
notion image
Nacos配置共享与覆盖
单机日志logback.xml
 
通过加入一个@Builder
会出现以下错误
数值没用枚举 在范围内其他暂无意义的值可以随便插入()
实际上并没有多个
notion image
(多条记录实现 但共用一套模版时?)
新增或更新运费模板业务修改
业务思路补充解释:
假设传过来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
 
notion image
 
根据体积参数与实际重量计算计费重量业务
规则引擎
职责链模式
缓存 id 大key数据
缓存重复(A→B B→A)需要对组合进行排序
若加入自定义 不可用 同时查询两个

Day02练习参考

删除

 

缓存与自定义模版

 
 
 
 
 
并发计算压力
带宽占用
服务端hutool base64 → 客户端生成
 
 
UT测试结果
Redis数据结果
更新后删
notion image
notion image
notion image
 

职责链模式确定模板

引入依赖与配置
notion image

设计思路

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

实现

 

相关UT与效果

UT

1.创建上海与安徽合肥间的跨省模板(自定义类型)
2.更新上海与安徽合肥间的跨省模板
notion image

执行效果

notion image
notion image
notion image

Redis相关数据

城市到省份映射x2 + 模板数据x1 均为string类型
notion image
删除缓存后
notion image

城市到省份映射

前缀+城市id为key 省份id为value
 
上海
notion image
安徽合肥
notion image
模板数据
notion image
 

MySQL数据

notion image
notion image
 
相关文章
MetingJS使用自定义音乐源-CF+Huggingface部署
Lazy loaded image
Win与linux开发环境配置|Powershell与Zsh配置记录
Lazy loaded image
折腾linux虚拟机杂记
Lazy loaded image
Redis5.0源码学习 - 草稿
Lazy loaded image
Leetcode Hot 100解题记录 - 草稿
Lazy loaded image
天机学堂完结复盘
Lazy loaded image
[神领物流]项目复盘-环境搭建hexo主题Google搜索引擎收录流程
Loading...
CamelliaV
CamelliaV
Java;CV;ACGN
最新发布
SEU9系本硕资料
2025-6-12
Leetcode Hot 100解题记录 - 草稿
2025-6-12
神领物流Day02复盘-运费业务 - 草稿
2025-6-4
天机学堂完结复盘-更新草稿
2025-6-4
Redis5.0源码学习 - 草稿
2025-6-3
折腾linux虚拟机杂记
2025-6-3
公告
计划:
  • LLM相关
  • 支付业务 & 双token无感刷新
  • (线程池计算优惠方案)天机学堂Day09-Day12复盘-优惠劵业务
  • (业务复盘,技术汇总)天机学堂完结复盘
  • hot 100
 
2024-2025CamelliaV.

CamelliaV | Java;CV;ACGN