Spring Boot 提供了多种参数注解,用于接收和处理不同类型的请求参数。下面是一些常用的参数注解和它们的用法:
-
@RequestParam
:用于将请求中的参数绑定到方法的参数上。可以指定参数名称、是否必需、默认值等。例如:@RequestParam("name") String name
。 -
@PathVariable
:用于将 URL 中的路径参数绑定到方法的参数上。可以指定路径参数的名称。例如:@PathVariable("id") Long id
。 -
@RequestBody
:用于将请求体中的数据绑定到方法的参数上。常用于接收 JSON 格式的数据或复杂对象。例如:@RequestBody User user
。 -
@RequestHeader
:用于将请求头中的信息绑定到方法的参数上。可以指定请求头的名称。例如:@RequestHeader("Authorization") String token
。 -
@CookieValue
:用于将请求中的 Cookie 值绑定到方法的参数上。可以指定 Cookie 的名称。例如:@CookieValue("sessionToken") String sessionId
。 -
@RequestPart
:用于将多部分请求中的数据绑定到方法的参数上。常用于文件上传,与@RequestParam
类似。例如:@RequestPart("file") MultipartFile file
。 -
@ModelAttribute
:用于将请求参数绑定到方法参数上,作为对象的属性。用于接收表单提交的数据。例如:@ModelAttribute User user
。 -
@Valid
:与@RequestBody
或@ModelAttribute
一起使用,用于执行参数校验。需要配合 JSR-303 校验规范使用,例如使用 Hibernate Validator。 -
@RequestParam
、@PathVariable
、@RequestHeader
等注解支持一些属性,如required
是否必需、defaultValue
默认值等,用于自定义参数的绑定方式。
这些参数注解可以用于控制器的处理方法中,用于接收和处理请求中的不同类型的数据。你可以根据请求的特点和需求选择合适的参数注解,进行参数的绑定和处理。同时,你也可以结合使用多个参数注解,以满足复杂的业务需求。
需要注意的是,参数注解一般用于处理 HTTP 请求,对于其他类型的方法、非 Web 环境等场景,可能不适用或需要额外的处理。