JAX-RS
JAX-RS ist eine Spezifikation zur Implementierung von REST-Webdiensten in Java, die derzeit vom JSR-370 definiert wird . Es ist Teil der Java EE-Technologien , die derzeit im JSR 366 definiert sind .
Jersey (im Lieferumfang von GlassFish und Payara enthalten) ist die JAX-RS-Referenzimplementierung. Es gibt jedoch auch andere Implementierungen wie RESTEasy ( im Lieferumfang von JBoss EAP und WildFly enthalten) und Apache CXF (im Lieferumfang von TomEE und WebSphere enthalten).
Frühlingsrahmen
Das Spring Framework ist ein vollständiges Framework , mit dem Sie Java-Unternehmensanwendungen erstellen können. Die REST-Funktionen werden vom Spring MVC- Modul bereitgestellt (dasselbe Modul, das Funktionen für die Modellansichtssteuerung bereitstellt ). Es ist keine JAX-RS-Implementierung und kann als Spring-Alternative zum JAX-RS-Standard angesehen werden.
Das Spring-Ökosystem bietet auch eine breite Palette von Projekten zum Erstellen von Unternehmensanwendungen, darunter Persistenz, Sicherheit, Integration in soziale Netzwerke, Stapelverarbeitung usw.
Beispiele
Betrachten Sie den folgenden Ressourcencontroller, der die JAX-RS-API verwendet:
@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();
}
}
Die entsprechende Implementierung unter Verwendung der Spring MVC-API wäre:
@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);
}
}
Verwenden von Spring Boot und Jersey
Spring Boot bietet das spring-boot-starter-jersey
Modul, mit dem Sie das JAX-RS-Programmiermodell für die REST-Endpunkte anstelle von Spring MVC verwenden können. Es funktioniert ganz gut mit Jersey 2.x.
Ein vollständiges Beispiel zum Erstellen einer Webanwendung mit Jersey 2.x und Spring Boot 1.4.x finden Sie in dieser Antwort .