标签

Spring Boot

01-MongoDB 基础:文档模型、CRUD 与聚合管道
文章梳理MongoDB 9.0的文档模型、BSON与_id、嵌入/引用建模、增删改查和聚合管道。核心结论:BSON强类型导致类型不一致时查询可能静默无结果,投产应加validator防脏数据;嵌入适合随父读取且有上限的数据,引用适合无上限、需独立查询或共享的数据;写关注默认w:"majority",insert/update/remove已废弃,应改用新API;聚合中$match应前置以走索引。Spring Boot 4.x配置前缀改为spring.mongodb.*,照旧文会静默连错库。读者可避开类型、建模、写入语义和版本迁移中的常见坑。
2026-10-20
|
8
|
0
|
0
02-MyBatis-Plus:把重复的 CRUD 收进框架
MyBatis-Plus在MyBatis上增强而非重写,替代单表CRUD、条件拼装、主键生成、字段填充和逻辑删除,不替代动态SQL、复杂映射、事务、缓存及索引优化。3.5.9起分页需额外引入jsqlparser,拦截器统一且分页最后;3.3.0起ID_WORKER改名ASSIGN_ID。Spring Boot 3须用对应starter。乐观锁更新返回0即失败,自动填充仅实体更新生效。可避开版本与配置坑。
2026-10-20
|
1
|
0
|
0
Spring Boot 文件上传:从 MultipartFile 到可访问的 URL
Spring Boot文件上传实际分为四段:浏览器提交、容器写入临时盘、业务代码用transferTo搬到业务目录、再将目录映射为URL;四段各有配置和失败点。关键结论:单文件默认上限1MB、请求默认10MB,临时目录配置键是spring.servlet.multipart.location;transferTo传相对路径会落到容器工作目录,应使用绝对路径和Path重载;原始文件名不可信,须截取文件名、由服务端生成存储名并防路径穿越;静态资源映射不鉴权,下载应流式并正确编码中文名。本机磁盘方案存在多副本、容量和冗余限制,可替换为对象存储与预签名URL。
2026-10-20
|
6
|
0
|
0