2014-11-09 5 views
10

Я хочу построить спокойное обслуживание/API. Я использовал некоторую структуру, такую ​​как игра, чтобы ее создать, но я хочу попробовать другие более эффективные способы. Я слышал, что Джерси является общей библиотекой для создания остального API, а Spring также является хорошей основой. Но я также видел некоторые решения, такие как Spring + Jersey. Таким образом, я немного запутался в этих решениях API для отдыха.В чем разница между сервисом Spring Rest и сервисом Jersey Rest Service и Spring + Jersey?

Может ли кто-нибудь сказать мне, в чем разница между ними? Джерси REST, Весенний отдых и весна + Джерси отдыха?

Моя цель - создать пару API для отдыха, которые принимают json как вход/выход. У меня есть jar-файл в качестве логики процесса backend для обработки входного json/object и возврата json/object.

спасибо большое.

ответ

14

Джерси - это пример реализации JAX-RS API, предоставляемый Sun, в то время как Spring REST - это, конечно же, реализация Spring того же API/JSR. Основное отличие заключается в том, что Spring REST легко интегрируется в другие API Spring (если хотите), например Spring Data Rest.

Есть несколько примечательных различий между ними - вы можете «встраивать» Jersey Ресурсы (известные весной, как контроллеры) друг в друга, чтобы дать отдельный класс, который отвечает за суб-путь к определенный путь, в то время как это, похоже, недоступно весной прямо сейчас (вы должны определить полный путь). Кроме того, на мой взгляд, Джерси дает лучшие «из коробки» ответы об ошибках (например, почему он не может сопоставить полезную нагрузку JSON с Java-компонентом с использованием Jackson), в то время как Spring немного более конфигурируема, но более простая, без дополнительной работы.

В конце концов, разница в выборе между ними обычно сводится к тому, что вы уже или планируете интегрировать любые другие библиотеки Spring в свое приложение? Если так, Spring REST - это путь, так как вам будет намного легче интегрировать его, иначе это действительно личное предпочтение, которое вы предпочтете использовать. Лично мне нравится Джерси, но сила других связанных весенних проектов (таких как Spring HATEOAS, которые я очень рекомендую) делает весну лучшим выбором. Я не думаю, что в вашем случае будет реальный определяющий фактор.

Как ваша «золотая» цель - простой API с вводом/выводом JSON, я бы рекомендовал вам следовать за Spring REST guide.

+0

Также весна + Джерси REST обычно относится к использованию Джерси для конечных точек RESTful с весной для остальной части приложения - когда вы хотите использовать аннотации/реализацию Джерси, но другие фреймворки Spring, такие как инъекция зависимости. –

+0

Спасибо, я уже установил REST api. – Terry

2

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

Jersey Test Framework не подходит для смехотворного кода на стороне сервера. Например, если ваш ресурс REST зависит от службы, вы хотели бы издеваться над сервисом при тестировании методов ресурсов. Тем не менее, тесты «Джерси» запускают отдельный контейнер, а отдельные тесты выполняют сортировку вызовов для исполняемого экземпляра вашего ресурса REST - на данный момент я не нашел никакой документации или способа издевательского кода на стороне сервера.

Напротив, Spring MVC tests не требуют каких-либо контейнеров и более хорошо интегрированы с его контроллерами. Инъекция зависимостей может использоваться для инъекции макетных сервисов/DAO для улучшения модульных тестов.

Я также считаю, что документация по весенним проектам более зрелая по сравнению с Джерси.

Смежные вопросы