JAX-RS
JAX-RS è una specifica per l'implementazione dei servizi Web REST in Java, attualmente definita da JSR-370 . Fa parte delle tecnologie Java EE , attualmente definite da JSR 366 .
Jersey (fornito con GlassFish e Payara) è l'implementazione di riferimento JAX-RS, tuttavia esistono altre implementazioni come RESTEasy (fornita con JBoss EAP e WildFly) e Apache CXF (fornita con TomEE e WebSphere).
Quadro di primavera
La Spring Framework è un framework completo che permette di creare applicazioni aziendali Java. Le funzionalità REST sono fornite dal modulo Spring MVC (stesso modulo che fornisce funzionalità di controller della vista modello ). Non è un'implementazione JAX-RS e può essere vista come un'alternativa di primavera allo standard JAX-RS.
L'ecosistema Spring offre anche una vasta gamma di progetti per la creazione di applicazioni aziendali, che includono persistenza, sicurezza, integrazione con i social network, elaborazione batch, ecc.
Esempi
Considerare il seguente controller di risorse utilizzando l'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();
}
}
L'implementazione equivalente utilizzando l'API Spring MVC sarebbe:
@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);
}
}
Utilizzando Spring Boot e Jersey
Spring Boot fornisce il spring-boot-starter-jersey
modulo che consente di utilizzare il modello di programmazione JAX-RS per gli endpoint REST anziché Spring MVC. Funziona abbastanza bene con Jersey 2.x.
Per un esempio completo di creazione di un'applicazione Web con Jersey 2.xe Spring Boot 1.4.x, fare riferimento a questa risposta .