Разница между spring mvc и Jersey
Есть ли какой-либо компромисс между использованием Spring mvc и контейнера сервлетов Jersey Rest? Джерси следует за стандартом Jax RS. Когда я узнаю Spring mvc, более или менее выглядит одинаково. В некоторых приложениях я обнаружил, что люди используют свиток Spring. Если Spring (диспетчерский сервлет с отображением обработчика) может выполнить всю работу, то в чем здесь нуждается Джерси? Спасибо заранее.
Ответы
Ответ 1
Spring MVC - это полная инфраструктура веб-интерфейса, включая поддержку HTML и других шаблонов, а также другие функции в дополнение к функциям JSON/XML REST, предоставленным компанией Jersey.
Spring MVC был вокруг первого и имеет свой собственный способ делать вещи. JAX-RS был определен как стандарт для обработчиков REST на основе аннотаций, а Джерси - это реализация этого стандарта. (Он очень похож на @Autowired
и CDI.)
Я лично предпочитаю Spring MVC, потому что я строю на стек Spring и могу повторно использовать код между моими обработчиками JSON и HTML, но компоненты, предназначенные для развертывания как одна часть собственной системы клиента, могут быть более гибкими, если использовать JAX-RS.
Ответ 2
Лично я считаю, что это просто вопрос предпочтения и с какой точки зрения вы смотрите на него. Я хотел бы сказать, что при создании этого соображения при создании разных уровней можно сказать, что есть дополнительный слой REST, поверх других слоев бизнеса, настойчивости и т.д. Точно так же, как реализации персистентности можно поменять, так что можно реализовать REST.
При этом, хотя классы endpoint/controller/resource выглядят одинаково в реализации, другие функции (слоя REST) реализованы совершенно иначе. Рассматривая его с точки зрения Spring, я думаю, что те, кто комфортно с Spring, захотят сохранить MVC как реализацию REST, поскольку он знакомство
Глядя на это с точки зрения Джерси, я думаю, что большинство решений по интеграции приходит; выбирая, как реализовать слои ниже слоя REST. Для этого Spring будет жизнеспособным выбором, так как он имеет богатую экосистемную систему. Но, будучи пользователем Джерси, каркас Джерси (для реализации REST) кажется намного более интуитивным, но это полностью предвзято. Чтобы использовать Spring и Jersey вместе, вы можете посмотреть Сочетание проекта Spring и Джерси
Насколько Джерси является реализацией JAX-RS, я не считаю это решающим фактором при выборе реализации REST, глядя на нее с точки зрения Spring. Я действительно не вижу, чтобы это было значительным фактором. В среде Java EE убедитесь, что вы можете поменять местами реализации с небольшим количеством проблем, но при интеграции Spring это не так просто, поскольку существуют интеграционные модули и конфигурации, связанные с интеграцией различных реализаций JAX-RS с помощью Spring.