RestFul风格
Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
资源:互联网所有的事物都可以被抽象为资源
资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作。
分别对应 添加、 删除、修改、查询。
原来的风格
RestFulController:
@Controller
public class RestFulController {
@RequestMapping("/add")
public String test(int a, int b, Model model){
int res = a + b;
model.addAttribute("msg","res = "+ res);
return "admin/test";
}
}
在浏览器格式必须为:http://localhost:8080/add?a=2&b=5
RestFul风格
在Spring MVC中可以使用 @PathVariable 注解,让方法参数的值对应绑定到一个URI模板变量上。
@Controller
public class RestFulController {
//映射访问路径
@RequestMapping("/add/{p1}/{p2}")
public String index(@PathVariable int p1, @PathVariable int p2, Model model){
int result = p1+p2;
//Spring MVC会自动实例化一个Model对象用于向视图中传值
model.addAttribute("msg", "结果:"+result);
//返回视图位置
return "test";
}
}
http://localhost:8080/add/5/5
@RequestMap可以加上特定的请求方法,在@RequestMap中添加属性method = RequestMethod.DELETE(等等):
例如:
@Controller
public class RestFulController {
@RequestMapping(value = "/add/{a}/{b}", method = RequestMethod.GET)
public String test(@PathVariable int a, @PathVariable int b, Model model){
int res = a + b ;
model.addAttribute("msg","res = "+ res);
return "admin/test";
}
但是,有下面这些注解更加方便:
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping
比如:@GetMapping 是一个组合注解,平时使用的会比较多!它所扮演的是 @RequestMapping(method =RequestMethod.GET) 的一个快捷方式。其它例子等同。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。