• 基本用法

    • @GetMapping与@PostMapping不指定参数时就是指直接使用到controller一级的url就行
    • @GetMapping与@PathVariable对应,前者{}中的字符串和后者修饰的变量名对应
    • @PostMapping与@RequestBody(仅请求参数时json格式时??)、@RequestParam??对应,Spring会自动把POST的Request Body部分的JSON转换成方法声明的类。如果转换失败会返回4xx错误,表示请求参数有问题。
    • @PutMapping可以同时使用@PathVariable和@RequestBody
    • @DeleteMapping可以同时使用@PathVariable和@RequestParam,还可以使用HttpServletRequest(Spring Boot会自动帮忙传进来)
      • @RequestParam既可以是url后面?跟的参数,也可以是request form里的key-value参数
      • @RequestParam有一个required参数,默认为true,如果设为false,就是说这个参数可以不传
  • 上传文件
    • 首先要设置consumes为multipart/form-data(上传文件肯定是这个)

      • @PostMapping(value="/files", consumes=MediaType.MULTIPART_FORM_DATA_VALUE)
    • 在方法中写@RequestParam("file") MultipartFile file参数,然后在方法中就可以直接使用MultipartFile的流保存文件了,file为调用者上传文件时的request form中指定的名字(name)
      • public Map<String, Object> uploadFile(@RequestParam("file") MultipartFile file)
      • MultipartFile可以直接getInputStream()获取输入流
      • curl可以使用-F参数指定文件上传
  • 返回文件、图片等二进制文件/流
    • 首先要设置produces为MediaType.IMAGE_JPEG_VALUE等参数

      • @GetMapping(value="/{id}/icon", produces=MediaType.IMAGE_JPEG_VALUE)
    • 方法返回时返回一个字节数组,注解会自动转换为图片等格式(其实就是设置http response的媒体类型、长度等??)
  • 从请求中获取信息的方法
    • 从URL中获取其路径的一部分

      • 首先需要在RequestMapping做映射,之后在方法中可以通过注解使用映射的变量

        • @GetMapping("/{id}") public TvSeries getOne(@PathVariable("id") Integer id){}
      • 可以写多个
        • @PutMapping("/{id}/characters/{cId}")
      • 还可以使用正则表达式限制类型(不符合要求会返回4xx的错误信息,标识请求参数有问题)
        • @PutMapping("/{id:\\d+}")
    • 从POST请求中获取传递来的JSON
      • 给参数前增加@RequestBody注解,Spring会自动把POST的Request Body部分的JSON转换成方法声明的类。如果转换失败会返回4xx错误,表示请求参数有问题。
      • public Object updateOne(@RequestBody TvSeries tvSerives)
    • 从文件上传中获取文件流内容
      • 参考前文

最新文章

  1. xamarin(3.9.236)里DATETIMENOW的错误。
  2. Nancy之基于Nancy.Hosting.Aspnet的小Demo
  3. laypage
  4. 算法系列5《SSF33》
  5. extjs的button控件fireEvent(&#39;click&#39;)无效问题
  6. leetcode-Consecutive numbers
  7. metrics实践 (metrics-spring)
  8. 构建Docker平台【第二篇】安装 Docker
  9. 微信小程序部署问题总结
  10. java:产生小数位数为2的随机概率,使得和为1
  11. [转】Python--遍历列表时删除元素的正确做法
  12. OpenUDID 和 IDFA 比较
  13. MySQL之数据备份、pymysql模块
  14. python之dict
  15. Tomcat配置虚拟主机、tomcat的日志
  16. Landsat8 卫星数据下载
  17. 一本通1649【例 2】2^k 进制数
  18. Controller、Service、Dao进行Junit单元
  19. MySQL5.6快速安装【转】
  20. windows下用nginx配置https服务器

热门文章

  1. 转 CentOS下面安装RVM+ruby+Rails
  2. UNITY引擎变量调用产生不必要内存分配
  3. python+Django创建第一个项目
  4. 使用C#通过Oracle.DataAccess连接Oracle,部署时需要注意版本问题
  5. Linux实战教学笔记48:openvpn架构实施方案(一)跨机房异地灾备
  6. 启动和关闭MySQL服务
  7. 【BZOJ2780】Sevenk Love Oimaster【广义后缀自动机】
  8. 解剖Nginx&#183;自动脚本篇(1)解析配置选项脚本 auto/options
  9. opencv3.3
  10. 226. Invert Binary Tree 翻转二叉树