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'}";
    }


}
相关推荐
Cyan_RA99 小时前
SpringMVC REST 详解
java·spring·mvc·springmvc·restful·jquery·jsp
Java成神之路-1 天前
面试题:SpringMVC执行流程(视图版+前后端分离版)
java·springmvc
budingxiaomoli3 天前
SpringMVC综合性练习
spring·springmvc
我登哥MVP15 天前
【SpringMVC笔记】 - 2 - @RequestMapping
java·spring boot·spring·servlet·tomcat·intellij-idea·springmvc
我登哥MVP16 天前
【SpringMVC笔记】 - 1 - SpringMVC入门
java·spring boot·spring·tomcat·maven·intellij-idea·springmvc
tryxr18 天前
SpringMVC 中的常用注解和用法
spring·mvc·springmvc
cheems952720 天前
[SpringMVC] SpringWebMVC常见注解介绍
java·springmvc·注解
NGC_66111 个月前
详细解析SpringMVC:原理、架构与实战核心
springmvc
惊讶的猫2 个月前
SpringMVC介绍
java·springmvc·springboot
Zsh-cs3 个月前
苍穹外卖之SpringMVC的消息转换器在项目中的应用场景
springmvc·苍穹外卖·消息转换器