Spring - популярный фреймворк для разработки приложений корпоративного уровня. После многих лет эволюции SpringBoot пришел к выводу, что это действительно так. Spring имеет возможность писать веб-службы RESTful с помощью @RestController. Существуют разные способы написания веб-сервисов RESTful. Джерси (поставляется с Glassfish и Payara) - один из них. Jersey - это реализация JAX-RS с открытым исходным кодом, это API Java для веб-служб RESTful. JAX-RS является частью Java EE Technologies.

Сравнение весны и Джерси

Весна:

  • Это нестандартная реализация API.
  • Часто пытается проводить эксперименты (некоторые функции могут быть устаревшими или некоторые функции могут быть добавлены) в ближайшие годы.
  • Поскольку он не использует реализацию Standard API, ответственность за обратную совместимость намного меньше.
  • Это реализация полного стека, а не просто реализация отдыха.
  • Он поставляется с другими службами Spring, такими как ORM, Spring Security Module и т. Д.

JAX-RS:

  • Он следует стандартной реализации API.
  • Специально разработан для реализации REST.
  • Как стандартная реализация API, это обратная совместимость (например, при выпуске новой версии JDK).
  • JAX-RS является частью Java EE, который можно использовать с другими технологиями Java EE для разработки сервисов RESTful.

Использование Джерси весной

Spring Boot предоставляет модуль Jersey, который позволяет использовать модуль реализации JAX-RS только для конечных точек REST вместо всего пакета, предоставляемого модулем Spring MVC. Spring полностью совместим с реализацией Jersey. Любой ORM можно использовать без ограничений.

А что насчет функций безопасности весной, если мы будем использовать Джерси?

Мы можем добавить все необходимые зависимости в файл pom.xml, в соответствии с требованиями проекта, мы добавляем зависимости, и нам придется написать шаблонный код для него, поскольку мы не полностью используем службы Spring, что требует правильной реализации и тестирования перед развертыванием код. Одним небольшим преимуществом является размер WAR или JAR, который в конце проекта будет немного меньше, поскольку веб-модули Spring, имеющие дополнительные зависимости, которые не требовались все время, исключаются (полностью зависит от требований вашего проекта 😁).

Шпаргалка по JAX-RS

Когда следует использовать JAX-RS вместо Spring:

На мой взгляд, давайте разберемся, как показано ниже:

Если вы уже находитесь в мире Spring, просто используйте Spring, который поставляется с множеством зависимостей (функций), и мы сможем быстро начать разработку, не выполняя много настроек. Люди используют Spring, потому что SpringMVC вместе с спокойной реализацией предоставляет конфигурации и зависимости, такие как интеграция гибернации, IOC и ориентированное на аспекты программирование. Так что вам нужно пойти с Джерси. Поскольку Spring получит такую ​​же поддержку, что и Джерси, либо с точки зрения обработки глобальных исключений, либо с точки зрения обработки запроса или ответов.

JAX-RS можно использовать, когда мы разрабатываем код в Java EE, и только тогда, когда мы ожидаем запрос и ответ в формате JSON \ XML. JAX-RS не обрабатывает рендеринг страниц со стороны сервера, здесь Spring MVC входит в картина и заботится обо всем.

Надеюсь, этот пост дал вам немного больше информации о JAX-RS и Spring Boot.