Интеграция 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