Spring的Restful
package restful; public class TestOne { /** * 1.REST基础知识 * REST远程过程调用机制, * 不同与soap * REST :面向资源的 * SOAP:面向行为和动作 * * Spring如何支持REST * 1)控制器处理所有http方法,四个REST方法 GET POST DELETE PUT * 2)@PathVariable注解,支持参数化的url * 3)借助Spring的视图和视图解析器,能够以多种形式表述资源,xml,json,atom等 * 4)@ResponseBody和HttpMethodConverter能够代替基于视图的渲染方式。 * 5)借助类RestTemplate 能方便使用REST资源 (get post。。。) * * 表述性 representational 各种形式进行表述 xml json html * 状态 state 关注的是资源的状态,而不是对资源采取的行动 * 转移 Transfer 转移资源数据,从一种应用转换到另一个应用 * * 1.将资源的java 转换为传送给客户端的表述形式 * 内容协商和消息转换(contentne gotiation message conversion) * * 内容协商的优势和劣势 * 优势: * 善于处理面向用户和面向客户端重叠较多的情况。 * 劣势: * 只能决定数据怎么渲染到客户端,不能决定客户端发送什么样的表述给控制器使用。????? * * * 不推荐使用contentns gotiation * * * * 2. * 消息转换 * 更为直接,不需要将模型数据传给视图,没有模型数据,也没有视图; * 只有控制器产生的数据,以及消息转换器抓转换后的资源表述。 * * 通过@RequestBody 注解将对象返回给响应 * 1) * @RequestBody * * 能告诉Spring将数据发送给客户端的时候需要一个消息器。 * 查找消息器,将来自客户端的资源数据转换为java对象。 * 2) * @RestControl * 如果控制器的每个方法都需要消息转换器,可以使用@RestControl代替@Control * * 3) * produces consumes 关注请求中的Content-Type,不满足条件将会由其他方法来处理。 * * * ResponseEntity * ResponseStatu * * 4 RestTemplate的操作 * 读取响应的数据 * * getForobject 和getForEntity * getForEntity不仅有响应对象,还有状态和响应头。 * * 消息转换器将对象转为为表述形式,并将请求发送到服务器端。 * * 数据处理 * GET POST PUT DELTE EXCHANGE * * EXCHANGE能设置返回给服务器的请求头信息 * */ public static void main(String[] args) { } }