Интеграция JackSon для JSON View с Spring 2.5

Мы используем 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 использовал этот API-интерфейс 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.

Альтернатива: строительство фасада

Кроме того, я не знаю какой-либо спецификации Java EE для библиотек Json, которая подразумевает, что существует высокая вероятность того, что все внутренние зависимости Spring json являются специфическими для API, определенных Spring-json [сравните это, например, с JPA, который в общем определяется Java EE, так что многие структуры DAO легко заменить].

Как правило, вы можете упаковать любую библиотеку JSon в виде компонента Spring, который будет доступен в контексте приложения. Теперь - если вы переопределите необходимые интерфейсы, используя шаблон фасада, используя Джексона под капотом, ваша версия Spring 2.5 должна работать так же. Кроме того, вы можете перехватывать вызовы, связанные с Json, используя библиотеки аспектно-ориентированных инъекций Spring, и при необходимости перенаправлять их.

Опять же, однако, это все сложные задачи - это были бы отличные учебные проекты, но я не уверен, что затраты времени действительно окупятся, если это будет производственное приложение.

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

Другие вопросы по тегам