带有 MVC 的 Spring 3 JSON
Posted
技术标签:
【中文标题】带有 MVC 的 Spring 3 JSON【英文标题】:Spring 3 JSON with MVC 【发布时间】:2010-12-08 18:56:07 【问题描述】:有没有办法构建 Spring Web 调用,分别使用和生成 application/json
格式的请求和响应?
也许这不是 Spring MVC,我不确定。我正在寻找与 Jersey/JSON 行为类似的 Spring 库。最好的情况是,如果我可以将注释添加到 Controller 类中,将它们转换为 JSON 服务调用。
展示如何使用 JSON 构建 Spring Web 服务 的教程会很棒。
编辑:我正在寻找一种基于注释的方法(类似于 Jersey)。
EDIT2:和泽西岛一样,我正在寻找 REST 支持(POST、GET、DELETE、PUT)。
EDIT3:最好是pom.xml
条目和一些关于将spring-js 与jackson Spring 本机版本一起使用的信息。
【问题讨论】:
这里提出了类似的话题:***.com/questions/658936/… dma_k - 这个问题真的不是那么相似。那个问题是关于 java 对象和 JSON 之间的转换,这个问题专门问如何使用 Spring MVC 来发送和接收 JSON 消息。 【参考方案1】:没有预先打包的方式来做你想做的事,因为 Jersey 通过 Jersey-Spring API 很好地与 Spring 集成,所以真的没有理由重新发明***。
【讨论】:
我目前使用泽西岛,它很好。老实说,我觉得 Spring 集成并没有那么引人注目,这并不是什么大不了的事。就像 Spring MVC 与 Struts 一样,我并不真的期望 Spring Rest JSON 功能有很多变化,我只是想弄清楚它是否真的存在,以便我可以尝试一下。【参考方案2】:这个特性现在是 Spring 3.0 版本的一部分。您可以简单地使用 @ResponseBody 注释来指定您希望将请求处理程序方法的返回值序列化为 JSON 并作为响应正文发送。见http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/
【讨论】:
【参考方案3】:如果其他人稍后到达这里: http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/ 对我来说是最有用的链接。这终于让我理解了这个模型(经过不到一天的搜索)。
【讨论】:
如果你已经在 Spring 3,这会更好。Spring-JSON 项目很棒,但不幸的是它依赖于 Spring 2.5。【参考方案4】:由于 spring-mvc 3.0 对使用 JSON 的 Ajax 远程处理的官方支持作为 Spring MVC 的一部分提供。这包括支持使用 Spring MVC @Controller 编程模型生成 JSON 响应和绑定 JSON 请求。
见here
【讨论】:
【参考方案5】:您可以通过handler mappings 配置Spring MVC 拦截器,然后使用映射将返回的数据转换为JSON。处理程序配置可以在 xml 中完成(无需重新编译),这对应用程序的其余部分是完全透明的。
用一些注解来注解控制器是相当容易的,然后连接 BeanFactory 引导进程以在一些处理程序映射进程中注册控制器。
我已经使用这种方法将结果从 spring 控制器转换为 GWT RPC 调用。
您还可以使用 Spring AOP 拦截控制器方法调用并解包/包装来自/到 JSON 的请求。
【讨论】:
【参考方案6】:看看这个
Adding support for JSON and XML views
Source code for Spring Finance Manager
【讨论】:
这些教程引用了源代码 - 你知道这些源代码的链接在哪里吗? 添加了源链接【参考方案7】:看起来DWR 框架看起来非常接近你想要的。
【讨论】:
【参考方案8】:您当然可以让控制器返回 JSON 输出中的视图。看看the Spring-JSON project。
要使用 JSON 格式的请求,我假设您只希望控制器将请求参数传递给可以解析数据的 JSON 库?
【讨论】:
这不是我想要的。它应该像泽西岛一样工作,我不想交出事情,MVC 控制器应该用 JSON 方面层(可能通过注释)包装,允许它发送和接收 JSON。 Spring-JSON 项目完成了其中的一半(发送),但没有完成另一半。以上是关于带有 MVC 的 Spring 3 JSON的主要内容,如果未能解决你的问题,请参考以下文章
带有 MVC 的 Spring Boot SOAP Web 服务