当前位置: 首页 > 图灵资讯 > 技术篇> SpringBoot常用注解!

SpringBoot常用注解!

来源:图灵教育
时间:2024-01-25 13:19:58

(文章目录)

Spring Web MVC 注解@RequestMapping

@Requestmaping注释的主要用途是映射Web请求和请求处理的方法。Spring MVC和Spring WebFlux通过Webflux==RquestMappingHandlerMapping==和==RequestMappingHndlerAdapter==为@RequestMaping注释提供两类支持。==@RequestMapping==注意标注请求处理类中的请求处理方法;==@RequestMapping==注释具有以下六个配置属性:

  • ==value==:URL或其别名的映射请求

  • ==method==:与HTTP方法名兼容

  • ==params==:根据HTTP参数的存在、缺失或值过滤请求

  • ==header==:根据HTTP Header的存在、缺失或值过滤请求

  • ==consume==:在HTTP请求文本中设置允许使用的媒体类型

  • ==product==:允许在HTTP响应体中使用的媒体类型

提示:正在使用 ==@RequestMapping==以前还需要使用请求处理类。 ==@Controller==或 ==@RestController==标记下面是使用 ==@RequestMapping==两个示例:微信图片_20240125120326.png==@RequestMapping==也可以对类进行标记,这样在映射请求路径时,类中的处理方法会自动在类上进行标记 ==@RequestMapping== 在将Value拼接到方法中的映射路径之前,如下:1.png

@RequestBody

==@RequestBody==在处理请求方法的参数列表中使用,可以将请求主体中的参数绑定到一个对象中,通过==HttpMessageConverter==根据要求主体中的参数名和对象的属性名进行匹配和绑定。另外,还可以通过 ==@Valid== 注意检查请求主体中的参数

以下是一个用途 ==@RequestBody==的示例:2.jpg

@GetMapping

==@GetMapping==用于处理HTTPP注释 GET请求,并将请求映射到具体的处理方法中。具体来说,==@GetMapping==这是一个组合注释,相当于 ==@RequestMapping(method=RequestMethod.GET)== 快捷方式。

下面是 ==@GetMapping==使用示例:3.jpg

@PostMapping

==@PostMapping==用于处理HTTPP注释 POST请求,并将请求映射到特定的处理方法中。==@PostMapping==与 ==@GetMapping==同样,它也是一种组合注释,相当于 ==@RequestMapping(method=HttpMethod.POST)== 快捷方式。

下面是使用 ==@PostMapping==一个例子:4.jpg

@PutMapping

==@PutMapping==用于处理HTTPP注释 PUT请求,并将请求映射到具体的处理方法中,==@PutMapping==它是一种组合注释,相当于 ==@RequestMapping(method=HttpMethod.PUT)== 快捷方式。

下面是使用 ==@PutMapping==一个例子:5.jpg

@DeleteMapping

==@DeleteMapping==用于处理HTTPP注释 DELETE请求,并将请求映射到删除方法中。==@DeleteMapping==这是一个组合注释,相当于 ==@RequestMapping(method=HttpMethod.DELETE)== 快捷方式。

下面是使用 ==@DeleteMapping==一个例子:6.jpg

@PatchMapping

==@PatchMapping==用于处理HTTPP注释 PATCH请求,并将请求映射到相应的处理方法中。==@PatchMapping==相当于是 ==@RequestMapping(method=HttpMethod.PATCH)== 快捷方式。

以下是一个简单的例子:7.jpg

@ControllerAdvice

==@ControllerAdvice== 是 ==@Component== Spring将自动扫描和检测注释的延伸注释==@ControllerAdvice== 标注的类别。 ==@ControllerAdvice== 需要和 ==@ExceptionHandler、@InitBinder== 以及 ==@ModelAttribute== 注解搭配使用,主要用于处理控制器抛出的异常信息。

首先,我们需要定义一个 ==@ControllerAdvice== 在此类中,标注的类别定义了一种处理特定异常的方法 ==@ExceptionHandler== 注意标记。

另外,必要时可以使用 ==@InitBinder== 全球配置也可用于类别 ==@ModelAttribute== 配置与视图相关的参数。使用 ==@ControllerAdvice== 可以快速创建统一的、自定义的异常处理类别。

以下是一个使用 ==@ControllerAdvice==示例代码:8.jpg

@ResponseBody

==@ResponseBody== 将控制器中方法的返回值自动写入HTTP响应。特别的,==@ResponseBody==注释只能用于被子 ==@Controller== 注明标记的类别。如果在被 ==@RestController== 在标记类中,则方法不需要使用==@ResponseBody== 标注注注释。 ==@RestController== 相当于是 ==@Controller== 和 ==@ResponseBody== 组合注释。

以下是使用该注释的示例2.png

@ExceptionHandler

==@ExceptionHander==注释用于标记处理特定类型异常的异常抛出方法。当控制器中的方法抛出异常时,Spring会自动捕获异常,并将捕获的异常信息传递给被捕获的信息 ==@ExceptionHandler==标记方法。

以下是使用此注释的示例:9.jpg

@ResponseStatus

==@ResponseStatus==注释可以标记请求处理方法。使用此注释,可以指定HTTP来响应所需的响应 STATUS。特别是,我们可以使用HTTPStauts类赋值注释的value属性。

下面是使用 ==@ResponseStatus==一个注释示例:

10.jpg

@PathVariable

==@PathVariable==注释是将方法中的参数绑定到请求URI中的模板变量上。可以通过 ==@RequestMapping== 注释指定URI模板变量,然后使用 ==@PathVariable== 注意将方法中的参数绑定到模板变量上。

特别地, ==@PathVariable== 注释允许我们使用value或name属性为参数取个别名。以下是使用此注释的示例:11.jpg需要使用模板变量名{ }包装时,如果方法的参数名与URI模板变量名一致,则在 ==@PathVariable== 别名的定义可以省略。提示:如果参数是不必要和可选项,则可以在 ==@PathVariable== 中设置 ==require = false==

@RequestParam

==@RequestParam==注释用于绑定方法的参数和Web请求传输的参数。使用 ==@RequestParam== HTTP请求参数的值可以很容易地访问。

使用此注释的代码示例如下:3.png该注释的其他属性配置及 ==@PathVariable==配置相同,特别是如果传输的参数是空的,也可以通过defaultvalue设置默认值。示例代码如下:12.jpg

@Controller

==@Controller==是 ==@Component== 对于注释的延伸,Spring将自动扫描并配置注释标记的类别。此注释用于标记Spring MVC控制器。以下是使用此注释的示例代码:13.jpg

@RestController

==@RestController==Spring 4.0开始引入,这是一个特定的控制器注释。这个注释相当于 ==@Controller== 和 ==@ResponseBody== 快捷方式。使用此注释时,无需在方法上使用 ==@ResponseBody==注解。

以下是使用此注释的示例代码:14.jpg

@ModelAttribute

通过此注释,可以通过模型索引名访问已经存在于控制器中的model。以下是使用此注释的简单示例:4.png与 ==@PathVariable== 和 ==@RequestParam== 同样,如果参数名与模型有相同的名称,则无需指定索引名称,如下:5.png特别是,如果使用 ==@ModelAttribute== 标记方法,Spring将方法的返回值绑定到特定的Model上。例如:6.png在Spring调用具体处理方法之前 ==@ModelAttribute== 所有注释标记的方法都将执行。

@CrossOrigin

==@CrossOrigin==注释将为请求处理或请求处理方法提供跨域呼叫支持。如果我们对此进行注释,该类中的所有方法都将获得支持跨域的能力。使用此注释的优点是可以微调跨域行为。使用此注释的示例如下:15.jpg

@InitBinder

==@InitBinder==注释用于标记初始化Webdatabinider的方法,用于处理Http请求传递的表单数据,如时间格式化、字符串处理等。以下是使用此注释的示例:7.png