【问题标题】:Integrating JackSon for JSON View with Spring 2.5将 JSON 视图的 JackSon 与 Spring 2.5 集成
【发布时间】:2011-12-08 08:51:41
【问题描述】:

我们使用 Spring 2.5 和 spring-json 来支持 JSON。我们在views.xml中有以下配置

<bean name="jsonView" class="org.springframework.web.servlet.view.json.JsonView"/>

现在,我们了解到 Spring 3.x 在内部使用 JackSon API 来支持 JSON。我的问题是我们如何覆盖 Spring 2.5 的默认实现以使用 JackSon - Spring 3.x 开始的方式。

注意:我们不想迁移我的 Spring 版本,但是,希望 Spring 2.5 使用这个 JackSon API 而不是 Spring-Json

【问题讨论】:

  • 如果 JsonView 工作,你为什么关心是否使用杰克逊?
  • 我了解 Spring 在 3.x 中已迁移到 JackSon,因为它更快更好。我们有严重的速度问题,急于使应用程序更快!
  • 您是否有证据表明JsonView 是您的性能问题的原因?
  • 如果JsonView 不是您的瓶颈,那么使用Jackson 将无助于您的应用程序性能。您需要先确定什么是慢的,然后再尝试让它更快。
  • 哈!这不是 JsonView 成为瓶颈的问题。与以前的版本相比,带有 JackSon 视图的 Spring 速度有多快

标签: java performance spring jackson spring-json


【解决方案1】:

是否可以在不破坏它的情况下替换 Spring 的 JSON 支持?

不幸的是,Spring 自己的文档指出 Spring-json 是现有 Spring 2.5 框架的“深层”组件。

见:http://spring-json.sourceforge.net/

也就是说——移除对 spring-json 的依赖,添加你自己的 JSON 解析器,重建 spring 就可以了。鉴于 spring-json 是整个 Spring MVC 套件的主要组件,我认为这将需要大量工作。

另一种选择:构建立面

此外,我不知道任何 Json 库的 Java EE 规范,这意味着所有内部 Spring json 依赖项很有可能特定于 Spring-json 定义的 API [比较这个,例如, JPA 是由 Java EE 通用定义的,因此很容易替换许多 DAO 框架]。

通常,您可以将任何类型的 JSon 库打包为 Spring 组件,该组件将在应用程序上下文中可用。现在 - 如果你使用外观模式重新实现必要的接口,在底层使用 Jackson,你的 Spring 2.5 版本应该可以工作。或者,您可以使用 Spring 的面向方面的注入库拦截感兴趣的 Json 相关调用,并根据需要重新路由它们。

同样,这些都是高级任务 - 它们将是出色的学习项目,但我不确定如果这是一个生产应用程序,时间投资是否真的会得到回报。

http://www.javaworld.com/javaworld/jw-02-2008/jw-02-springcomponents.html

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多