SpringBoot中的Restful架构风格的请求方式

SpringBoot中的Restful架构风格的请求方式

RESTful是一种软件设计风格,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。

SpringMVC对RESTful风格的接口有着天然的支持,本篇将讲述如何在SpringBoot中怎样写。

几个注解

在讲述使用之前,想要理解SpringMVC的几个常用注解:

  1. @Controller:修饰class,用来创建处理http请求的对象
  2. @RestController:Spring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默认返回json格式。
  3. @RequestMapping:配置url映射
  4. @PostMapping: 这个是@RequestMapping+POST方法的简写
  5. @RequestHeader: 请求Header参数
  6. @PathVariable: URL路径参数,比如/user/{id}中的id参数
  7. @RequestParam: URL请求参数,比如/user?id=1中的id参数
  8. @RequestBody: 请求Body参数

REST接口开发常用的注解

@RestController与@Controller

@RestController相当于 @Controller和@ResponseBody结合。它有两层含义:一是作为控制器注入到Spring上下文环境,二是请求响应为数据序列化(默认序列化方式是JSON),而不是跳转到html或模板页面。

@RequestMapping 与@GetMapping、@PutMapping、@PostMapping、@DeleteMapping

@RequestMapping(value = “/article”, method = RequestMethod.GET) 新方法可以简写为: @GetMapping("/article"),其他同理。

@RequestBody与@ResponseBody

用于接收和响应序列化数据(JSON),可以支持嵌套JSON数据结构。

@PathVariable 与@RequestParam

PathVariable用于URI上的{参数}
RequestParam用于接收普通方式提交的参数

案例

    @GetMapping("/emps")
    public String list(Model model){
        Collection<Employee> employees = employeeDao.getAll();
        model.addAttribute("emps",employees);
//        放在请求域中共享
//        thymeleaf才会默认拼接字符串
        return "emp/list";
    }
//    来到员工添加页面
    @GetMapping("/emp")
    public String toAddPage(Model model){
//        来到添加页面,查出所有的部门,在页面显示
        Collection<Department> departments = departmentDao.getDepartments();
        model.addAttribute("depts",departments);
        return "emp/add";
    }
//    员工添加
//    SpringMvc自动封装参数和入参对象的属性进行--绑定:要求请求参数的名字和javaBean的入参的对象里面的属性名是一样的
    @PostMapping("/emp")
    public String addEmp(Employee employee){
//        redirect:表示重新定项到一个地址 /代表当前项目路径
//        forward:表示转发到一个地址
//        System.out.println(employee);
//        保存员工
        employeeDao.save(employee);
        return "redirect:/emps";
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值