与原生 Spring MVC 开发习惯的差异
- 服务声明方式
Spring MVC使用@RestController声明服务,而java chassis使用@RestSchema声明服务,并且需要显示的使用@RequestMapping声明服务路径,以区分该服务是采用Spring MVC的标签还是使用JAX RS的标签。
- 数据类型支持
采用Spring MVC,可以在服务定义中使用多种数据类型,只要这种数据类型能够被json序列化和反序列化。比如:
public void postData(@RequestBody Object data)
public void postData(@RequestBody Map rawData)
public void postData(HttpServletRequest rquest)
为了支持快速开发,java chassis的数据类型限制也在不停的扩充,比如支持HttpServletRequest,但是实际在使用的时候,他们与WEB服务器的语义是不一样的,比如不能直接操作流。因此建议开发者在的使用场景下,尽可能使用契约能够描述的类型,让代码阅读性更好。此外,spring针对DispatcherServlet做了大量的扩展,这些扩展对于java-chassis的RestDispatcher是不适用的。