加粗 快捷键 cmd+b
斜体 cmd+i
分割线 cmd+u
编号列表: cmd+shift+o
无编号列表 cmd+shift+u
待办事项 cmd+shift+T
代码块 cmd+shift+P
无编号列表项目2;
[ ] 待办事项1
[ ] 待办事项2
System.out.println("hello world");
rest是一种http协议的风格,在互联网时代这种风格在微服务中流行起来了,客户端对微服务,微服务之间交互;
一个URL代表一个资源,里面都是名词;
REST 全称 Representational state Transfer 表现层状态转换;是一种软件架构原则;
HTTP的动作
请求方法 | 动作 |
---|---|
GET | 查询 |
POST | 新增 |
PUT | 修改全部 |
PATCH | 修改部分 |
DELETE | 删除 |
@RequestMapping是通用的url配置注解,为了支持rest,springboot引入了更多的注解;
注解 | 方法 | 说明 |
---|---|---|
@GetMapping | GET | 查询 |
@PostMapping | POST | 新增 |
@PutMapping | PUT | 修改全部 |
@PatchMapping | PATCH | 修改部分 |
@DeleteMapping | DELETE | 删除 |
以上注解的方法中可以配置consumers,produces,即接受什么类型的资源请求,输出什么格式的资源;
springmvc返回结果的流程有两种:
- @ResponseBody注解标识的控制器方法,无需视图解析器,使用MappingJackson2HttpMessageConverter转换输出;
- 使用ModelAndView,需要配置视图解析器;
springMVC容器启动的时候,默认注册了两个HttpMessageConverter,即:
1.StringHttpMessageConverter; 按照字符串输出;(produces=Text_plan_value)
2.MappingJackson2HttpMessageConverter;按照json字符串输出;(produces=xxxjson)
如果按照请求类型,找不到对应的HttpMessageConverter,则会流转到 ContentNegotiatingViewResolver,对结果进行解析;
springmvc内置了如下的视图解析器:
@ResponseStatus注解标注在控制器方法上,可以设置响应状态码;
ResponseEntity对象也可以设置响应状态码和响应头信息;
统一异常处理
可以在@ExceptionHandler标注的异常处理方法上,标注@ResponseStatus,统一设置异常返回的响应状态码;
为了完成微服务系统之间的REST调用,springMvC提供了 RestTemplate,它的底层是使用HttpURLConnection实现的;
public static void testGet(){
RestTemplate restTemplate = new RestTemplate();
String url = "https://xxx.yyy.com/tiananuser_service/testNewUser/new/{plat}/{start}/{end}?requestId=x";
Map<String, Object> params = new HashMap<>(3);
params.put("plat",0);
params.put("start","2019-12-20");
params.put("end","2020-01-06");
final ResponseEntity<Object> responseEntity = restTemplate.getForEntity(url, Object.class, params);
System.out.println("responseEntity.getStatusCodeValue() : "+ responseEntity.getStatusCodeValue());
System.out.println("responseEntity.getBody() : "+ responseEntity.getBody());
}
简单介绍了使用REST访问的客户端RestTemplate ;
原创不易,转载请注明出处。
原文:https://www.cnblogs.com/snidget/p/12157849.html