实现目标:
前端发出HTTP请求(http://xxx.com/yyy, 默认端口80),请求到达servlet容器,找到对应的controller处理对象,该controller提供restful web service, 返回JSON字符串给前端,由前端将JSON字符串填充到HTML中,实现前后端编程分离。
传统的SpringMVC编程:
1. 根据HTTP请求路径找到处理的controller类以及对应的方法
2. 处理HTTP request对象,解析获取请求里面的内容(1. Http Head 2. Http requestBody里面的JSON字符串 2. Http reqeustBody里面的表单)
3. 逻辑处理/读写数据库
4. 返回ModelAndView
这种方式最大的不方便在于前端的渲染在后台处理,前后端耦合,前端工程师和后端工程师工作在同一工程下。
传统的resfult编程:
1. 需要给control类加上@Controller注释
2. 需要给访问路径映射的处理方法Method加上@ResponseBody注释
3. 在处理方法Method返回对象时,需要手动将JAVA POJO对象转换成JSON对象
不方便在于后端使用较多的注解,以及需要手动处理POJO和JSON对象的转换
Spring4.0的@RestController
1. @RestController包含了@Controller
和 @ResponseBody两个功能
2. 使用MappingJackson2HttpMessageConverter自动将POJO转换成JSON对象