带有 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 服务

如何在带有注解配置的spring mvc中使用spring数据

带有表单的spring mvc日期格式:输入

Java / Spring MVC 3 验证电子邮件地址

带有注释的 Spring MVC 验证

带有 Spring Boot 的 Spring MVC 不适用于 Eclipse 的 Tomcat 服务器