Spring MVC RESTful 使用 Jackson 的 Web 服务:如何限制 URL 的子集
Spring MVC RESTful web services with Jackson: How to restrict to subset of URLs
按照此处列出的步骤 http://www.journaldev.com/2552/spring-restful-web-service-example-with-json-jackson-and-client-program ,我已经能够完全按照我的需要设置我的 RESTful WS。
现在,我想让这个应用程序上下文成为 RESTful WS(在特定 URL 前缀 /myapp/rest/ 下)和站点其余部分的标准 MVC 映射的混合体.
但是从 servlet-context XML 文件中,我真的无法弄清楚如何限制 MappingJackson2HttpMessageConverter
仅适用于某个 URL 前缀。
<!-- Configure to plugin JSON as request and response in method handler -->
<beans:bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<beans:property name="messageConverters">
<beans:list>
<beans:ref bean="jsonMessageConverter"/>
</beans:list>
</beans:property>
</beans:bean>
<!-- Configure bean to convert JSON to POJO and vice versa -->
<beans:bean id="jsonMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
</beans:bean>
还有什么我应该在这里检查的吗?
谢谢
黄
您可以在同一应用程序中同时拥有 SpringMVC 样式控制器和 SpringMVC REST 样式控制器。事实上,您也可以在同一个控制器中编写一个 SpringMVC 处理程序方法和一个 REST 端点。
@Controller
public class MyController
{
@RequestMapping("/home")
public String homePage(Model model)
{
model.addAttribute("data",someObject);
return "home"; //this will render the view home.jsp
}
@RequestMapping(value="/users", method=RequestMethod.POST)
@ResponseBody
public User saveUser(@RequestBody User user)
{
//persist user
return user; //this will return JSON/XML based representation of User object
}
}
观察 @RequestBody 和 @ResponseBody REST 样式处理程序方法注释的使用。
按照此处列出的步骤 http://www.journaldev.com/2552/spring-restful-web-service-example-with-json-jackson-and-client-program ,我已经能够完全按照我的需要设置我的 RESTful WS。
现在,我想让这个应用程序上下文成为 RESTful WS(在特定 URL 前缀 /myapp/rest/ 下)和站点其余部分的标准 MVC 映射的混合体.
但是从 servlet-context XML 文件中,我真的无法弄清楚如何限制 MappingJackson2HttpMessageConverter
仅适用于某个 URL 前缀。
<!-- Configure to plugin JSON as request and response in method handler -->
<beans:bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<beans:property name="messageConverters">
<beans:list>
<beans:ref bean="jsonMessageConverter"/>
</beans:list>
</beans:property>
</beans:bean>
<!-- Configure bean to convert JSON to POJO and vice versa -->
<beans:bean id="jsonMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
</beans:bean>
还有什么我应该在这里检查的吗?
谢谢 黄
您可以在同一应用程序中同时拥有 SpringMVC 样式控制器和 SpringMVC REST 样式控制器。事实上,您也可以在同一个控制器中编写一个 SpringMVC 处理程序方法和一个 REST 端点。
@Controller
public class MyController
{
@RequestMapping("/home")
public String homePage(Model model)
{
model.addAttribute("data",someObject);
return "home"; //this will render the view home.jsp
}
@RequestMapping(value="/users", method=RequestMethod.POST)
@ResponseBody
public User saveUser(@RequestBody User user)
{
//persist user
return user; //this will return JSON/XML based representation of User object
}
}
观察 @RequestBody 和 @ResponseBody REST 样式处理程序方法注释的使用。