WEB开发网
开发学院软件开发Java Spring MVC与JAX-RS比较与分析 阅读

Spring MVC与JAX-RS比较与分析

 2010-08-04 00:00:00 来源:WEB开发网   
核心提示: 要想与Web浏览器协同工作,表单处理是个重要环节,Spring MVC与JAX-RS比较与分析(10),另一方面,Web Services客户端一般会在请求体中提交XML或JSON格式的数据,此外还有一个用于处理JSON的Jackson HttpMessageConverter,HttpMess

要想与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"/> 

上一页  5 6 7 8 9 10 

Tags:Spring MVC JAX

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接