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.