Spring Cloud Spring Boot mybatis分布式微服务云架构

首先,回顾并详细说明一下在快速入门中使用的@Controller、@RestController、@RequestMapping注解。如果您对Spring MVC不熟悉并且还没有尝试过快速入门案例,建议先看一下快速入门的内容。@Cont...

首先,回顾并详细说明一下在快速入门中使用的@Controller、@RestController、@RequestMapping注解。如果您对Spring MVC不熟悉并且还没有尝试过快速入门案例,建议先看一下快速入门的内容。

@Controller:修饰class,用来创建处理http请求的对象

@RestController:Spring4之后加入的注解, 原来在@Controller中返回json需要 @ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默认返回json格式。

@RequestMapping:配置url映射
下面我们尝试使用Spring MVC来 实现一组对User对象操作的RESTful API,配合注释详细说明在Spring MVC中如何映射HTTP请求、如何传参、如何编写单元测试。

RESTful API具体设计如下:

请求5.png

User实体定义:

  1. public class User {     

  2.   

  3.     private Long id;     

  4.     private String name;     

  5.     private Integer age;     

  6.   

  7.     // 省略setter和getter     

  8.   

  9. }    

实现对User对象的操作接口

  1. @RestController     

  2. @RequestMapping(value="/users")     // 通过这里配置使下面的映射都在/users下     

  3. public class UserController {     

  4.   

  5.     // 创建线程安全的Map     

  6.     static Map<Long, User> users = Collections.synchronizedMap(new HashMap<Long, User>());     

  7.   

  8.     @RequestMapping(value="/"method=RequestMethod.GET)     

  9.     public List<User> getUserList() {     

  10.         // 处理"/users/"的GET请求,用来获取用户列表     

  11.         // 还可以通过@RequestParam从页面中传递参数来进行查询条件或者翻页信息的传递     

  12.         List<User> r = new ArrayList<User>(users.values());     

  13.         return r;     

  14.     }     

  15.   

  16.     @RequestMapping(value="/"method=RequestMethod.POST)     

  17.     public String postUser(@ModelAttribute User user) {     

  18.         // 处理"/users/"的POST请求,用来创建User     

  19.         // 除了@ModelAttribute绑定参数之外,还可以通过@RequestParam从页面中传递参数     

  20.         users.put(user.getId(), user);     

  21.         return "success";     

  22.     }     

  23.   

  24.     @RequestMapping(value="/{id}"method=RequestMethod.GET)     

  25.     public User getUser(@PathVariable Long id) {     

  26.         // 处理"/users/{id}"的GET请求,用来获取url中id值的User信息     

  27.         // url中的id可通过@PathVariable绑定到函数的参数中     

  28.         return users.get(id);     

  29.     }     

  30.   

  31.     @RequestMapping(value="/{id}"method=RequestMethod.PUT)     

  32.     public String putUser(@PathVariable Long id, @ModelAttribute User user) {     

  33.         // 处理"/users/{id}"的PUT请求,用来更新User信息     

  34.         User u = users.get(id);     

  35.         u.setName(user.getName());     

  36.         u.setAge(user.getAge());     

  37.         users.put(id, u);     

  38.         return "success";     

  39.     }     

  40.   

  41.     @RequestMapping(value="/{id}"method=RequestMethod.DELETE)     

  42.     public String deleteUser(@PathVariable Long id) {     

  43.         // 处理"/users/{id}"的DELETE请求,用来删除User     

  44.         users.remove(id);     

  45.         return "success";     

  46.     }     

  47.   

  48. }  


  • 发表于 2018-06-25 17:17
  • 阅读 ( 905 )
  • 分类:前端

1 条评论

请先 登录 后评论
不写代码的码农
IT 小兵

355 篇文章

作家榜 »

  1. 小编 文章
返回顶部
部分文章转自于网络,若有侵权请联系我们删除