@Controller
@RequestMapping(value = "/pets", method = RequestMethod.POST, consumes="application/json")
一、producesproduces的作用是指定返回值类型和返回值编码使用示例1返回json数据,本示例可以省略produces属性,因为我们已经使用了注解@responseBody。@responseBody的作用也是设置返回值为json数据@Controller @RequestMapping(value = "/pets/{petId}", method = RequestMethod.GET, produces="application/json") @ResponseBody
Http请求中Content-Type讲解以及在Spring MVC注解中produce和consumes配置详解
RequestMapping 注解说明
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)...
声明:本文部分转载于—— 这里
因为项目中遇到:
@PostMapping(path = "/checkToXXX", consumes = "application/json;charset=utf-8")
虽知道大致用途,但没有仔细关注过,今天趁此机会记录一下,加深记忆。
我们首先知道它是用来指定信息传递的格式(发送和接收),这里就涉及到了 Content-Type 这个东东。
1. Content-Type
MediaType,即是Internet Media Type,互联网媒体类型;也叫
@RequestMapping
完整版Java笔记白嫖:大家可以扫二维码免费领取
@RequestMapping注解的主要用途是将Web请求与请求处理类中的方法进行映射。
Spring MVC和Spring WebFlux都通过RquestMappingHandlerMapping和RequestMappingHndlerAdapter两个类来提供对@RequestMapping注解的支持。
@RequestMapping注解对请求处理类中的请求处理方法进行标注;
@RequestMapping支持基于value、path、method、params、headers、consumers、produces的匹配,本文对基于params的匹配过程进行分析。
系列博文《Spring 注解面面通 之 @RequestMapping 请求匹配处理方法源码解析》中对请求匹配@RequestMapping注释方法流程进行了分析。
AbstractHandlerMethodMapping.lookupHandlerMethod(...)方法负责查找请求最佳匹配的处理方法。
produces可能不算一个注解,因为什么呢,它是注解@requestMapping注解里面的属性项,
它的作用是指定返回值类型,不但可以设置返回值类型还可以设定返回值的字符编码;
还有一个属性与其对应,就是consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
他们的使用方法如下:
一、produces的例...
在 Spring Boot 中,@RequestMapping 是一个注解,它用于将 HTTP 请求映射到特定的处理方法上。
@RequestMapping 注解可以用在类或方法上,用于定义 URL 和 HTTP 请求方法与处理方法的映射关系。例如:
```java
@RestController
@RequestMapping("/example")
public class ExampleController {
@RequestMapping(method = RequestMethod.GET)
public String hello() {
return "Hello World!";
@RequestMapping(value = "/user/{id}", method = RequestMethod.GET)
public User getUser(@PathVariable Long id) {
// 处理获取用户的逻辑
@RequestMapping(value = "/user", method = RequestMethod.POST)
public User createUser(@RequestBody User user) {
// 处理创建用户的逻辑
在上面的示例中,@RestController 注解表示该类是一个 RESTful 风格的控制器类,@RequestMapping("/example") 定义了该类中所有处理方法的 URL 的前缀,比如 /example/user 和 /example/user/1。
hello() 方法的 @RequestMapping 注解只有 method 属性,表示该方法处理 GET 请求,因此它的 URL 是 /example,通过浏览器访问该 URL 就可以看到 Hello World! 字符串。
getUser() 方法的 @RequestMapping 注解包含了 value 和 method 属性,表示该方法处理的 URL 是 /example/user/{id},其中 {id} 是一个占位符,用于接收请求中的参数。@PathVariable 注解表示将请求中的参数绑定到方法的参数上,比如 /example/user/1 将被映射到 getUser(1) 方法上。
createUser() 方法的 @RequestMapping 注解包含了 value 和 method 属性,表示该方法处理的 URL 是 /example/user,并且它是一个 POST 请求,@RequestBody 注解表示将请求中的 JSON 字符串绑定到方法的参数上,比如:
```json
"name": "Tom",
"age": 20
将被映射到 createUser(new User("Tom", 20)) 方法上。
除了 method、value 属性外,@RequestMapping 注解还支持很多其他属性,比如 headers、consumes、produces 等,用于更精细地控制请求映射的条件。
//方式1
String str1 = String.valueOf(num);
System.out.println("方式1的结果:" + new StringBuilder(str1).reverse().toString());
//方式2
String str2 = Integer.toString(num);
System.out.println("方式1的结果:" + str2);
//方式3
String str3 = num + "";
System.out.println("方式1的结果:" + str3);