JAX-RS
JAX-RS to specyfikacja implementacji usług sieciowych REST w Javie, obecnie zdefiniowana przez JSR-370 . Jest częścią technologii Java EE , obecnie definiowanych przez JSR 366 .
Jersey (dostarczany z GlassFish i Payara) jest implementacją referencyjną JAX-RS, jednak istnieją inne implementacje, takie jak RESTEasy (dostarczane z JBoss EAP i WildFly) i Apache CXF (dostarczane z TomEE i WebSphere).
Spring Framework
Spring Framework jest pełne ramy , które pozwala na tworzenie aplikacji biznesowych Java. Możliwości REST są dostarczane przez moduł Spring MVC (ten sam moduł, który zapewnia możliwości kontrolera widoku modelu ). Nie jest to implementacja JAX-RS i może być postrzegana jako wiosenna alternatywa dla standardu JAX-RS.
Ekosystem Spring zapewnia również szeroką gamę projektów do tworzenia aplikacji korporacyjnych, obejmujących trwałość, bezpieczeństwo, integrację z sieciami społecznościowymi, przetwarzanie wsadowe itp.
Przykłady
Rozważ następujący kontroler zasobów korzystający z interfejsu API JAX-RS:
@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();
}
}
Równoważna implementacja wykorzystująca Spring MVC API wyglądałaby tak:
@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);
}
}
Używanie Spring Boot i Jersey
Spring Boot udostępnia spring-boot-starter-jersey
moduł umożliwiający wykorzystanie modelu programowania JAX-RS dla punktów końcowych REST zamiast Spring MVC. Działa całkiem dobrze z Jersey 2.x.
Pełny przykład tworzenia aplikacji internetowej za pomocą Jersey 2.x i Spring Boot 1.4.x znajduje się w tej odpowiedzi .