JAX-RS
JAX-RS - это спецификация для реализации веб-сервисов REST в Java, в настоящее время определенная в JSR-370 . Это часть технологий Java EE , в настоящее время определенных в JSR 366 .
Jersey (поставляется с GlassFish и Payara) является эталонной реализацией JAX-RS, однако существуют и другие реализации, такие как RESTEasy (поставляется с JBoss EAP и WildFly) и Apache CXF (поставляется с TomEE и WebSphere).
Spring Framework
Spring Framework является полной структурой , которая позволяет создавать корпоративные приложения Java. Возможности REST предоставляются модулем Spring MVC (тот же модуль, который предоставляет возможности контроллера представления модели ). Это не реализация JAX-RS, и ее можно рассматривать как альтернативу Spring стандарту JAX-RS.
Экосистема Spring также предоставляет широкий спектр проектов для создания корпоративных приложений, включая постоянство, безопасность, интеграцию с социальными сетями, пакетную обработку и т. Д.
Примеры
Рассмотрим следующий контроллер ресурсов, использующий JAX-RS API:
@Path("/greetings")
public class JaxRsController {
@GET
@Path("/{name}")
@Produces(MediaType.TEXT_PLAIN)
public Response greeting(@PathParam("name") String name) {
String greeting = "Hello " + name;
return Response.ok(greeting).build();
}
}
Эквивалентная реализация с использованием Spring MVC API:
@RestController
@RequestMapping("/greetings")
public class SpringRestController {
@RequestMapping(method = RequestMethod.GET,
value = "/{name}",
produces = MediaType.TEXT_PLAIN_VALUE)
public ResponseEntity<?> greeting(@PathVariable String name) {
String greeting = "Hello " + name;
return new ResponseEntity<>(greeting, HttpStatus.OK);
}
}
Использование Spring Boot и Jersey
Spring Boot предоставляет spring-boot-starter-jersey
модуль, который позволяет использовать модель программирования JAX-RS для конечных точек REST вместо Spring MVC. Он неплохо работает с Jersey 2.x.
Полный пример создания веб-приложения с помощью Jersey 2.x и Spring Boot 1.4.x см. В этом ответе .