RESTful快速开发

简化前

dart 复制代码
package com.baidu.controller;

import com.baidu.domain.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

@Controller
public class BookController {

    @RequestMapping(value = "/books", method = RequestMethod.POST)
    @ResponseBody
    public String save() {
        System.out.println("user save... ");
        return "{'module':'user save'}";
    }

    @RequestMapping(value = "/books/{id}", method = RequestMethod.DELETE)
    @ResponseBody
    public String delete(@PathVariable Integer id) {
        System.out.println("user delete ... " + id);
        return "{'module':'user save'}";
    }


    @RequestMapping(value = "/books", method = RequestMethod.PUT)
    @ResponseBody
    public String update(@RequestBody User user) {
        System.out.println("user update ... " + user);
        return "{'module':'user update'}";
    }


    @RequestMapping(value = "/books/{id}",method = RequestMethod.GET)
    @ResponseBody
    public String getById(@PathVariable Integer id) {
        System.out.println("user getById... " + id);
        return "{'module':'user getById'}";
    }

    @RequestMapping(value = "/books",method = RequestMethod.GET)
    @ResponseBody
    public String getAll() {
        System.out.println("user getAll ... ");
        return "{'module':'user getAll'}";
    }


}

先把共有路径提取出来

dart 复制代码
package com.baidu.controller;
import com.baidu.domain.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@Controller
@RequestMapping("/books")
public class BookController {

    @RequestMapping( method = RequestMethod.POST)
    @ResponseBody
    public String save() {
        System.out.println("user save... ");
        return "{'module':'user save'}";
    }

    @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
    @ResponseBody
    public String delete(@PathVariable Integer id) {
        System.out.println("user delete ... " + id);
        return "{'module':'user save'}";
    }


    @RequestMapping( method = RequestMethod.PUT)
    @ResponseBody
    public String update(@RequestBody User user) {
        System.out.println("user update ... " + user);
        return "{'module':'user update'}";
    }


    @RequestMapping(value = "/{id}",method = RequestMethod.GET)
    @ResponseBody
    public String getById(@PathVariable Integer id) {
        System.out.println("user getById... " + id);
        return "{'module':'user getById'}";
    }

    @RequestMapping(method = RequestMethod.GET)
    @ResponseBody
    public String getAll() {
        System.out.println("user getAll ... ");
        return "{'module':'user getAll'}";
    }


}

提取@ResponseBody

dart 复制代码
package com.baidu.controller;
import com.baidu.domain.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@Controller
@RequestMapping("/books")
@ResponseBody
public class BookController {

    @RequestMapping( method = RequestMethod.POST)
    
    public String save() {
        System.out.println("user save... ");
        return "{'module':'user save'}";
    }

    @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
    public String delete(@PathVariable Integer id) {
        System.out.println("user delete ... " + id);
        return "{'module':'user save'}";
    }


    @RequestMapping( method = RequestMethod.PUT)
    public String update(@RequestBody User user) {
        System.out.println("user update ... " + user);
        return "{'module':'user update'}";
    }


    @RequestMapping(value = "/{id}",method = RequestMethod.GET)
    public String getById(@PathVariable Integer id) {
        System.out.println("user getById... " + id);
        return "{'module':'user getById'}";
    }

    @RequestMapping(method = RequestMethod.GET)
    public String getAll() {
        System.out.println("user getAll ... ");
        return "{'module':'user getAll'}";
    }


}

合并@Controller和@ResponseBody为@RestController

设置当前控制器方法请求访问路径与请求动作,每种对应一个请求动作

dart 复制代码
package com.baidu.controller;
import com.baidu.domain.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;


@RestController
@RequestMapping("/books")

public class BookController {


    @PostMapping
    public String save() {
        System.out.println("user save... ");
        return "{'module':'user save'}";
    }

    @DeleteMapping("/{id}")
    public String delete(@PathVariable Integer id) {
        System.out.println("user delete ... " + id);
        return "{'module':'user save'}";
    }


    @PutMapping
    public String update(@RequestBody User user) {
        System.out.println("user update ... " + user);
        return "{'module':'user update'}";
    }


    @GetMapping("/{id}")
    public String getById(@PathVariable Integer id) {
        System.out.println("user getById... " + id);
        return "{'module':'user getById'}";
    }

    @GetMapping
    public String getAll() {
        System.out.println("user getAll ... ");
        return "{'module':'user getAll'}";
    }


}
相关推荐
jasnet_u5 天前
SpringMVC 请求处理深度解析:从 DispatcherServlet 到视图渲染
spring·springmvc·springboot
Cyan_RA96 天前
SpringMVC 数据格式化处理 详解
java·开发语言·spring·mvc·ssm·springmvc·数据格式化
一只大袋鼠8 天前
SpringMVC 框架中的拦截器
java·springmvc·javaweb·拦截器
一只大袋鼠9 天前
SpringMVC全局异常处理
java·开发语言·springmvc·javaweb
一只大袋鼠11 天前
JavaWeb四种文件上传方式(下篇)
java·开发语言·springmvc·javaweb
庞轩px11 天前
第三篇:SpringMVC——一个HTTP请求在Spring中经历了什么?
网络协议·spring·http·springmvc·handlermapping·前端控制器
Cyan_RA912 天前
SpringMVC 视图和视图解析器 万字详解
java·spring·mvc·springmvc·请求重定向·modelandview·视图解析器
javachen__14 天前
Spring MVC 动态支持 JSON/XML 的技巧
spring·springmvc
Cyan_RA919 天前
SpringMVC 请求数据绑定与参数映射 详解
java·后端·spring·mvc·springmvc·映射请求数据
傻瓜搬砖人19 天前
SpringMVC简介
springmvc