第二十一周:项目开发中遇到的相关问题(二)

复制代码
 本周接着介绍本次新闻项目中遇到的一些问题。
 首先谈谈Controller层中的请求路径问题(@RequestMapping),@RequestMapping注解是Spring框架中用于处理HTTP请求映射的核心注解,它可以将HTTP请求映射到具体的控制器方法上。 
 1.关于它的基本作用:URL映射,将HTTP请求的路径映射到控制器的方法上。支持多种HTTP方法,默认支持所有HTTP方法(GET POST PUT DELETE等),也可以通过method属性指定特定方法。
 2.属性作用

value/path 指定请求的 URL 路径,可以是一个或多个(如 "/users"、"/api/*")。

method 指定 HTTP 方法(如 RequestMethod.GET、RequestMethod.POST)。

params 指定请求参数的条件(如 params = "id=1")。

headers 指定请求头的条件(如 headers = "Content-Type=application/json")。

consumes 指定请求的 Content-Type(如 consumes = "application/json")。

produces 指定响应的 Content-Type(如 produces = "application/json")。

3.基本URL映射

java 复制代码
    @Controller
@RequestMapping("/users")
public class UserController {

    // 处理 /users 请求(GET 方法)
    @RequestMapping(method = RequestMethod.GET)
    public String getUsers() {
        return "users";
    }

    // 处理 /users/add 请求(POST 方法)
    @RequestMapping(value = "/add", method = RequestMethod.POST)
    public String addUser() {
        return "redirect:/users";
    }
}

4.注解位置

类级别:为控制器中的所有方法设置基础路径(如@RequestMapping("/api"))。

方法级别:在类级别的基础上,进一步指定具体路径(如 @GetMapping("/users"))。

5.与其他注解的混合使用

@RequestBody:用于处理JSON或XML格式的请求体。

@ResposeBody: 将方法返回值直接作为响应体(常用于RESTful接口)。

@PathVariable:绑定URL中的路径变量。

@RequestParam:绑定URL中的查询参数。

@RequestHeader:绑定请求头中的参数。

6.其他功能

1)路径匹配规则:支持Ant风格的路径(如*,**)。

2)HTTP方法限制:若不指定method,则默认支持所有请求方法。

3)参数验证:结合@Valid和BindingResult进行参数校验。

4)返回值处理:配合@ResponseBody和@RestController返回JSON数据。

相关推荐
AIFQuant3 小时前
如何利用免费股票 API 构建量化交易策略:实战分享
开发语言·python·websocket·金融·restful
Hx_Ma163 小时前
SpringMVC返回值
java·开发语言·servlet
Yana.nice3 小时前
openssl将证书从p7b转换为crt格式
java·linux
独自破碎E3 小时前
【滑动窗口+字符计数数组】LCR_014_字符串的排列
android·java·开发语言
想逃离铁厂的老铁3 小时前
Day55 >> 并查集理论基础 + 107、寻找存在的路线
java·服务器
Jack_David3 小时前
Java如何生成Jwt之使用Hutool实现Jwt
java·开发语言·jwt
瑞雪兆丰年兮3 小时前
[从0开始学Java|第六天]Java方法
java·开发语言
一点技术3 小时前
基于SpringBoot的选课调查系统
java·spring boot·后端·选课调查系统
datalover3 小时前
CompletableFuture 使用示例
java·开发语言
RANCE_atttackkk4 小时前
Springboot+langchain4j的RAG检索增强生成
java·开发语言·spring boot·后端·spring·ai·ai编程