① 我要不要拿前端数据?
- 要 → DTO / @RequestBody / @RequestParam
② 我要不要 cookie / IP / header?
- 要 → HttpServletRequest
③ 我要不要控制返回 cookie / 跳转?
-
要 → HttpServletResponse
参数 本质 干什么 @RequestBody DTO 业务数据 用户"要做什么" HttpServletRequest 请求信息 用户"是谁 + 怎么来的" HttpServletResponse 响应控制 "你给用户什么结果"


@RequiredArgsConstructor(onConstructor = @__(@Autowired))
本质是:
Lombok 自动生成"带 final 字段的构造方法",并且让 Spring 用这个构造方法注入依赖。
log.info() = 给开发/运维看的"系统运行日志" ( "系统发生了什么")
addImportantOperateLog() = 给业务/审计/合规看的"用户行为日志" ("某个用户做了什么")自定义的方法(这个方法不是"打印日志",而是"往数据库写一条用户行为记录")(
java
importantOperateLogService.addImportantOperateLog(uid, "/login/auth", "用户通过oauth登录成功", request);
)
用 Java 通过 SOAP 协议远程调用 LDAP 认证系统,完成用户名密码校验。
Java业务代码
↓
CXF(SOAP通信框架)
↓
WSDL(接口说明书)
↓
SOAP Client(远程调用对象)
↓
QName(指定调用哪个方法)
↓
client.invoke(发起远程请求)
↓
LDAP认证系统
↓
返回结果(XML → Java对象)
StringUtils.isBlank 是:
Apache Commons Lang 提供的"空值 + 空字符串 + 空白字符"统一判断工具方法
本质作用:
防止 uid 为空导致业务逻辑错误,并作为"兜底逻辑"的判断条件
jdbcType=VARCHAR = 指定数据库类型
数据库字段类型主要包括:
字符串类型(CHAR/VARCHAR/TEXT)、数值类型(INT/DECIMAL)、日期时间类型(DATE/DATETIME)、布尔类型、二进制类型(BLOB)等。
insertSelective vs insert
| 方法 | 行为 |
|---|---|
| insert | 全字段插入(包括 null) |
| insertSelective | 只插非 null |