Spring注解
# Spring注解
# @RunWith(SpringRunner.class)
# 前后端数据传输注解
@RequestParam、@PathVariable、 @RequestBody、@RequestHeader
没有指定注解则是通过查询字符串传递
注解 | 作用 | 示例场景 |
---|---|---|
@RequestParam | 从 URL 查询参数中提取数据,有多个同名参数自动转为集合 | /users?id=123 |
@PathVariable | 从 URL 路径参数中提取数据 | /users/123 |
@RequestBody | 从 HTTP 请求体中提取数据 | JSON 或 XML 格式的请求体 |
@RequestHeader | 从 HTTP 请求头中提取数据 | Authorization: Bearer <token> |
@PathVariable 常用于 RESTful 风格的 URL 中获取资源标识符,如 ID、名称等。@RequestBody 常用于处理 POST、PUT 等请求方法,接收请求体中的数据。
方式 | 安全性分析 | 适用场景 | 优缺点 |
---|---|---|---|
URL 查询参数/查询字符串(Query String) | 不安全,数据暴露在 URL 中,容易被日志、浏览器历史记录或第三方工具捕获。 | 适合传递非敏感数据(如分页参数、搜索关键字)。 | 不适用于传递大量或敏感数据 |
URL 路径参数 | 较不安全,数据仍然暴露在 URL 中,但比查询参数稍隐蔽。 | 适合传递资源标识符(如 /users/123 )。 | 简洁明了,易于理解。不适合传递大量或复杂的数据。 |
HTTP 头部 | 较安全,数据不暴露在 URL 中,但需确保使用 HTTPS 加密传输。 | 适合传递敏感信息(如身份验证令牌、API 密钥)。 | |
请求体(POST/PUT/PATCH) | 较安全,数据不暴露在 URL 中,但仍需使用 HTTPS 加密传输。 | 适合传递敏感信息或大量数据(如登录信息、支付数据)。 | 多种格式,如JSON、XML、form-data。传输大量或复杂的数据。不能用于GET请求 |
特性 | GET | POST | PUT | PATCH |
---|---|---|---|---|
语义 | 获取资源 | 创建资源或触发操作 | 更新或替换资源 | 部分更新资源 |
幂等性 | 幂等 | 不是幂等的 | 幂等的 | 不是幂等的 |
数据传递 | URL 查询参数 | 请求体 | 请求体 | 请求体 |
是否修改资源 | 否 | 是 | 是 | 是 |
使用场景 | 获取数据 | 创建资源、触发操作 | 更新或替换资源 | 部分更新资源 |
# RestController
- RESTful风格
- 所有方法的返回值都会直接写入 HTTP 响应体,而不是解析为视图。
- 默认情况下,返回值会被转换为 JSON 格式
# @Transaction事务
上次更新: 2025/4/8 11:18:04