前端数据交互与Java后端实战解析

① 我要不要拿前端数据?

  • 要 → DTO / @RequestBody / @RequestParam

  • 要 → HttpServletRequest

  • 要 → 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