Spring MVC与JAX-RS比较与分析
2010-08-04 00:00:00 来源:WEB开发网要想与Web浏览器协同工作,表单处理是个重要环节。另一方面,Web Services客户端一般会在请求体中提交XML或JSON格式的数据。
处理请求体中的数据
无论是Spring MVC还是JAX-RS都能够自动处理请求体中的数据:
@POST
public Response createAccount(Account account) {
// JAX_RS
}
@RequestMapping(method=POST)
public void createAccount(@RequestBody Account account) {
// Spring MVC
}
JAX-RS中的请求体数据
在JAX-RS中,类型MessageBodyReader的实体供应者负责转换请求体数据。JAX-RS的实现需要拥有一个JAXB MessageBodyReader,这可以使用具有注解@Provider的客户化MessageBodyReader实现。
Spring MVC中的请求体数据
在Spring MVC中,如果想通过请求体数据初始化方法参数,那可以将@RequestBody注解加到该方法参数前,这与之前介绍的表单参数初始化正好相反。
在Spring MVC中,HttpMessageConverter类负责转换请求体数据,Spring MVC提供了一个开箱即用的Spring OXM HttpMessageConverter。它支持JAXB、Castor、JiBX、XMLBeans和XStream,此外还有一个用于处理JSON的Jackson HttpMessageConverter。
HttpMessageConverter会注册到AnnotationMethodHandlerAdapter上,后者会将到来的请求映射到Spring MVC @Controllers上。下面是其配置:
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" >
<property name="messageConverters" ref="marshallingConverter"/>
</bean>
<bean id="marshallingConverter" class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter">
<constructor-arg ref="jaxb2Marshaller"/>
<property name="supportedMediaTypes" value="application/vnd.stocks+xml"/>
</bean>
<oxm:jaxb2-marshaller id="jaxb2Marshaller"/>
- ››Spring源码学习-含有通配符路径解析(上)
- ››Spring MVC与JAX-RS比较与分析
- ››Spring 框架的设计理念与设计模式分析
- ››Spring Web Flow 2 中流管理的持久化
- ››JAXP 全面介绍,第 1 部分:XML 处理工具包使解析...
- ››JAXP 全部内容,第 2 部分:使用 Sun 的 XML 处理...
- ››Spring 事务管理高级应用难点剖析: 第 2 部分
- ››Spring 事务管理高级应用难点剖析: 第 3 部分
- ››Spring 事务管理高级应用难点剖析,第 1 部分
- ››Spring之@Autowired问题
- ››spring 框架使用初步
- ››Spring 与 EJB 比较
更多精彩
赞助商链接