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


}
相关推荐
自在极意功。1 天前
简单介绍SpringMVC
java·mvc·springmvc·三层架构
Zsh-cs18 天前
SpringMVC
java·springmvc
阿拉斯攀登19 天前
设计模式:责任链模式(springmvc应用)
设计模式·springmvc·责任链模式
阿拉斯攀登19 天前
设计模式:命令模式(Spring MVC中的实践)
设计模式·springmvc·命令模式
后端小张20 天前
【JAVA 进阶】SpringMVC全面解析:从入门到实战的核心知识点梳理
java·开发语言·spring boot·spring·spring cloud·java-ee·springmvc
zfj32123 天前
springmvc websocket 的用法
网络·websocket·网络协议·springmvc
星星不打輰23 天前
SSM项目--SweetHouse 甜蜜蛋糕屋
java·spring·mybatis·ssm·springmvc
Han.miracle24 天前
Spring WebMVC入门实战:从概念到连接建立全解析
java·spring boot·spring·springmvc
java1234_小锋1 个月前
SpringMVC的拦截器和过滤器有什么区别?执行顺序?
springmvc