| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Spring MVC parse JSON req and get json resp |
| Автор: 4epT 22.11.2012, 15:10 |
| Всем привет. Делаю сервис, который будет принимать JSON запросы и отдавать JSON ответы. Все зпросы server-to-server по http. Json идет в теле запроса. Хочется применить Spring. На сколько я понял, единственный вариант ловить спрингом запросы, это использование Spring MVC (контроллеров). Знаю что можно парсить JSON параметры запроса сразу в объекты, а можно как то автоматически парсить JSON, если он идет непосредственно в теле запроса ? И как из Spring контроллера отдать JSON ответ ? Там везде нужно возвращать ModelAndView. Очень долго гуглил, так и не наше ничего ... И может быть в моем случае можно что то использовать вместо Spring MVC ? |
| Автор: jk1 22.11.2012, 15:39 | ||||
Ничего подобного, возвращать можно String, можно Stream, можно много чего еще, вплоть до void. Вот пример из нашего проекта, он показывает как писать ответ в контроллере:
SpringMVC сгенерирует из возвращенного массива json array с содержимым данных типов |
| Автор: 4epT 22.11.2012, 15:46 | ||
А не подскажете как он это сделает ? На каком этапе ? В моем случае, Spring MVC не будет слишком громоздким ? |
| Автор: jk1 22.11.2012, 17:04 | ||||
Все зависит от вашего случая. Если требуется всего навсего выставить пару REST-сервисов, то Spring MVC для этого явный overkill. Для такого случая берите любую реализацию JAX-RS, например Jersey или ResrEasy. Если же есть приложение и так на Spring, а к нему надо прикрутить отдачу JSON, то Spring MVC вполне удобен, от него солюшен не потяжелеет.
При загрузке контекста парсер для начала отыщет <mvc:annotation-driven/>, затем поищет в classpath jackson. Если jakson нашелся, то становится возможен прямой маршалинг POJO-объекта через него в JSON. Теперь после того, как отработает контроллер, хэндлер будет отдавать результат его работу Jakson'у для превращения в JSON и после будет формировать из этого JSON'а response. |
| Автор: 4epT 22.11.2012, 17:23 | ||
А можно ссылочку на какой нибудь пример ? Приложение как раз планируется именно в виде сервиса, никаких view там не будет. От спринга не хотелось бы уходить, так как хотелось бы использовать его IoC и DAO. Тогда наверное логично было бы уйти от Spring MVC и сделать просто Servlet как одну точку входа ? |
| Автор: jk1 25.11.2012, 22:26 | ||||
http://www.mkyong.com/spring-mvc/spring-3-mvc-and-json-example/
Не вижу тут логики. Раз спринг уже есть, то прикручивайте spring mvc, это будет очень легко. А если все же не хочется, то голые сервлеты использовать не советую - сделать можно, но будет очень уныло и долго. Альтернативой тут будет реализация любая JAX-RS: Jersey, RestEasy, Apache CXF, etc |
| Автор: 4epT 27.11.2012, 20:41 |
| jk1, скажите пожалуйста, а Вы никода не работали с dropwizard ? Или может быть что то слышали о нем ... |
| Автор: jk1 29.11.2012, 11:42 |
| Нет, не сталкивался с ним |