内容简介:之前在该注解主要用法有两种,示例如下如果我们想获取全部的get请求值,可以不明确指定RequestParam注解的value,并且使用map来接收参数。这样我们就可以得到全部的请求值。
之前在 SpringBoot源码解析-controller层参数的封装 中已经分析过springboot中controller层参数封装的原理,但是工作中毕竟不会一直有时间给你慢慢分析,有时候快速查询也是很必要的。所以今天就总结一下controller层哪些参数封装注解的含义,以及使用,方便以后快速查阅。
@RequestParam注解
该注解主要用法有两种,示例如下
1.指定参数名
http://127.0.0.1:8080/hello?id=123
@GetMapping("hello")
public String hello(@RequestParam("id") String id){
log.info("[{}]",id);
return "hello";
}
id = 123
复制代码
2.不指定参数名
http://127.0.0.1:8080/hello?id=123&name=liuyu
@GetMapping("hello")
public String hello(@RequestParam Map<String,String> value){
System.out.println(value);
return "hello";
}
value = {id=123, name=liuyu}
复制代码
如果我们想获取全部的get请求值,可以不明确指定RequestParam注解的value,并且使用map来接收参数。这样我们就可以得到全部的请求值。
@PathVariable注解
该注解主要用法有两种,示例如下
1.指定参数名
http://127.0.0.1:8080/hello/liuyu/qwert
@GetMapping("hello/{id}/{name}")
public String hello(@PathVariable("id") String id,@PathVariable("name") String name){
System.out.println(value);
System.out.println(name);
return "hello";
}
id = liuyu ,name = qwert
复制代码
2.不指定参数名
http://127.0.0.1:8080/hello/liuyu/qwert
@GetMapping("hello/{id}/{name}")
public String hello(@PathVariable Map<String,String> map){
System.out.println(map);
return "hello";
}
map = {id=liuyu, name=qwert}
复制代码
@MatrixVariable注解
如果要使用该注解需要开启配置
@Component
public class GlobalWebMvcConfigurer implements WebMvcConfigurer {
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
UrlPathHelper urlPathHelper=new UrlPathHelper();
urlPathHelper.setRemoveSemicolonContent(false);
configurer.setUrlPathHelper(urlPathHelper);
}
}
复制代码
该注解主要用法有两种,示例如下
指定参数名
http://127.0.0.1:8080/hello/liu;value=123
@GetMapping("hello/{id}")
public String hello(@PathVariable(name = "id") String name,@MatrixVariable(name = "value") String value){
System.out.println(name);
System.out.println(value);
return "hello";
}
id = liu
value = 123
复制代码
不指定参数名
http://127.0.0.1:8080/hello/liu;value=123;name=qwe
@GetMapping("hello/{id}")
public String hello(@PathVariable(name = "id") String name,@MatrixVariable Map<String,String> value){
System.out.println(name);
System.out.println(value);
return "hello";
}
id = liu
value = {value=123, name=qwe}
复制代码
@RequestBody注解
post 请求,将请具体封装成实体bean
post请求体
{
"name":"liu",
"id":"123"
}
@PostMapping("hello")
public String hello(@RequestBody User user){
System.out.println(user);
return "hello";
}
user(id=123, name=liu)
复制代码
@RequestHeader注解
获取请求头的字段,同样的有获取单个请求头和获取全部请求头的两种用法。
@CookieValue注解
获取cookie中的键值对的值。
请求头添加 Cookie:value=liuyu
@GetMapping("hello")
public String hello(@CookieValue(name = "value") String user){
System.out.println(user);
return "hello";
}
user = liuyu
复制代码
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
算法设计与分析基础
Anany levitin / 潘彦 / 清华大学出版社 / 2007-1-1 / 49.00元
作者基于丰富的教学经验,开发了一套对算法进行分类的新方法。这套方法站在通用问题求解策略的高度,能对现有的大多数算法都能进行准确分类,从而使本书的读者能够沿着一条清晰的、一致的、连贯的思路来探索算法设计与分析这一迷人领域。本书作为第2版,相对第1版增加了新的习题,还增加了“迭代改进”一章,使得原来的分类方法更加完善。 本书十分适合作为算法设计和分析的基础教材,也适合任何有兴趣探究算法奥秘的读者......一起来看看 《算法设计与分析基础》 这本书的介绍吧!