博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot 参数转换
阅读量:4297 次
发布时间:2019-05-27

本文共 1045 字,大约阅读时间需要 3 分钟。

在 Spring MVC 中,使用注解 @RequestMapping 修饰控制器时,其所配置的内容,会在工程的启动阶段保存到处理器映射(HandlerMapping)机制中,当请求连接被拦截后,HandlerMapping 进行匹配,会将对应的处理器和拦截器保存到 HandlerExecutionChain 对象中,并返回给 DispatcherServlet 运行。

处理器中包含了控制器,在执行控制器中匹配的方法前,需要先将请求报文中的参数转换为控制器所需要的参数。

  1. 不使用任何注解,控制器的参数名称需要和请求链接中的参数名称保持一致,如此参数可以正常传递,并且控制器的参数默认是可以为空的,所以请求链接中的参数可以是缺省的。

  2. 当前后端的参数名称不一致时,可以使用 @RequestParam 注解将两者映射起来,并且默认参数是非空的,但是可以使用注解中的 required 属性修改参数的必要性。

  3. 如果控制器的参数是数组,那么请求链接中的相应参数中的元素可以直接使用逗号分隔,如 http://127.0.0.1/testArray?value=1,2,3

  4. 使用 @RequestBody 注解修饰控制器的参数,从而可以获取请求报文体中的 JSON 参数。

  5. 使用 @PathVariable 注解获取请求链接路径中的参数,这个需要修饰控制器方法的注解使用 {<参数名称>} 占位符表明参数的位置和名称。

  6. 对于日期和数字,可以使用 @DateTimeFormat@NumberFormat 进行修饰,从而指定控制器参数的格式。

  7. 如果需要,可以自定义参数转换规则。

    如同使用 @RequestBody 修饰了参数的控制器,处理器会调用 HttpMessageConverter 接口中声明的方法对请求体信息进行转换。

    Spring MVC 中声明了三个接口来实现各种参数的转换,分别如下:

    • Converter,普通转换器,可以转换字符串,数字等简单类型的参数
    • Formatter,格式化转换器,可以格式化日期,数字等参数
    • GenericConverter,数组转换器,可以将请求中的参数转换为数组

    在 Spring Boot 中,自动配置类 WebMvcAutoConfiguration 中的 WebMvcAutoConfigurationAdapter 内部类,会自动将上面三种类型的 Bean 注册到服务类中。所以,只要实现上面的几个接口,就可以自定义自己的参数转换器。

转载地址:http://ztdws.baihongyu.com/

你可能感兴趣的文章
ubuntu终端一次多条命令方法和区别
查看>>
python之偏函数
查看>>
vnpy学习_06回测结果可视化改进
查看>>
读书笔记_量化交易如何建立自己的算法交易01
查看>>
设计模式03_工厂
查看>>
设计模式04_抽象工厂
查看>>
设计模式05_单例
查看>>
设计模式06_原型
查看>>
设计模式07_建造者
查看>>
设计模式08_适配器
查看>>
设计模式09_代理模式
查看>>
设计模式10_桥接
查看>>
设计模式11_装饰器
查看>>
设计模式12_外观模式
查看>>
设计模式13_享元模式
查看>>
设计模式14_组合结构
查看>>
设计模式15_模板
查看>>
海龟交易法则01_玩风险的交易者
查看>>
CTA策略02_boll
查看>>
vnpy通过jqdatasdk初始化实时数据及历史数据下载
查看>>