/**
* <pre>
*
* 作用在方法参数上的注解/参数对象,实现原理就是HandlerMethodArgumentResolver,参数解析器对每一个参数进行解析
*
* @PathVariable String demo 接收单个路径变量
* @PathVariable Map demo 接收所有的路径变量
* @RequestHeader String header 接收单个请求头
* @RequestHeader Map header 接收所有的请求头
* @RequestParam String param 接收指定的参数
* @RequestParam List<String> param 接收指定名称的数组参数
* @RequestParam Map param 接收所有的参数
* @CookieValue String cookie 获取Cookie值
* @CookieValue Cookie cookie 获取Cookie对象
* @RequestBody String content (不能用于GET,这个注解是获取请求体的数据)
* 对于表单的请求体,为a=1&b=2
* @RequestBody 对象类型 content
*
* @RequestAttribute String code 获取请求域中的数据
* @MatrixVariable String key 获取矩阵变量中的值,矩阵变量必须全部封装在路径变量中
* 矩阵变量的语法 url;key=value;key2=value2,value22,value222
* url之后,使用";"分割的为矩阵变量,数组方式有两种,一种是key=v1,vn,一种是k=v1,k=v2
* 最终的用法 "/luck/{id;key=value;key2=value2,value22,value222}
*
* 默认情况下,矩阵变量是不开启的,用法,实现WebMvcConfigurer接口,修改默认的UrlPathHelper
* @Override
* public void configurePathMatch(PathMatchConfigurer configurer) {
* // 设置路径匹配的帮助类,默认对象是不支持矩阵变量的,需要开启
* UrlPathHelper urlPathHelper = new UrlPathHelper();
* urlPathHelper.setRemoveSemicolonContent(true);
* configurer.setUrlPathHelper(urlPathHelper);
* }
* @RequestPart MultipartFile file 当你需要处理上传的文件或者多部分表单中的某个字段时,会自动将对应的请求部分绑定到该参数上
* @SessionAttribute String name 获取Session域中的指定名称的对对象值
*
* RedirectAttributes attriables 获取重定向携带的的数据,通过RedirectAttributesMethodArgumentResolver实现
*
* 下面两个作用一样,原理都是可以获取到整个请求链路中,保存到ModelAndViewContainer中的BindingAwareModelMap中的数据,并且最终会放入请求域中
* Map map 在通过MapMethodProcessor实现,给map赋值的是ModelAndViewContainer对象中保存的一个BindingAwareModelMap对象,它既是Map,也是Model
* Model model 通过ModelMethodProcessor实现,给map赋值的是ModelAndViewContainer对象中保存的一个BindingAwareModelMap对象,它既是Map,也是Model
*
* </pre>
*/
SpringBoot-SpringMVC中,常用参数注解总结
最新推荐文章于 2024-06-15 11:43:17 发布