1)新增员工(emp + emp_expr)
-
接口:
POST /emps,@RequestBody Emp emp -
先插入 emp 主表,用
@Options(useGeneratedKeys=true, keyProperty="id")回填主键 id -
再插入 工作经历 emp_expr:
- Emp 增加
exprList - 给每条经历补
empId - MyBatis XML 用
<foreach>批量插入
- Emp 增加
2)事务管理(保证两表一致)
-
新增员工是一个业务:emp 插入 + emp_expr 插入必须同成同败
-
Service 方法加
@Transactional:- 成功提交,异常回滚
-
默认只对 RuntimeException 回滚
- 要让所有异常回滚:
@Transactional(rollbackFor = Exception.class)
- 要让所有异常回滚:
-
传播行为重点两个:
-
REQUIRED(默认):有事务就加入 -
REQUIRES_NEW:独立新事务- 常用于“日志必须记录”,不受主业务回滚影响
-
3)文件上传(头像)
-
上传三要素:
file域 +POST+multipart/form-data -
Spring 接收:
MultipartFile file(参数名不一致用@RequestParam) -
本地存储优化:
- 用 UUID 防止重名覆盖
- 配置上传大小限制(默认单文件 1MB)
4)阿里云 OSS 上传(生产方案)
-
后端收到文件 → 上传 OSS → 返回 图片 URL 给前端保存
-
抽工具类
AliyunOSSOperator:生成目录yyyy/MM+ UUID 文件名,putObject上传,拼接 URL 返回 -
配置优化:endpoint/bucket/region 不写死
@Value或更推荐@ConfigurationProperties(prefix="aliyun.oss")