JAX-RS
JAX-RSは、JavaでREST Webサービスを実装するための仕様であり、現在JSR-370で定義されています。これは、現在JSR 366で定義されているJava EEテクノロジーの一部です。
Jersey(GlassFishおよびPayaraに同梱)はJAX-RSリファレンス実装ですが、RESTEasy(JBoss EAPおよびWildFlyに同梱)およびApache CXFなどの他の実装もあります。同梱(TomEEおよびWebSphereに同梱。
Spring Framework
春のフレームワークはある完全なフレームワークを使用すると、Javaエンタープライズ・アプリケーションを作成することができます。REST機能は、Spring MVCモジュール(モデルビューコントローラー機能を提供する同じモジュール)によって提供されます。これはJAX-RS実装ではなく、JAX-RS標準のSpring代替と見なすことができます。
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
Spring MVCの代わりにRESTエンドポイントのJAX-RSプログラミングモデルを使用できるモジュールを提供します。Jersey 2.xで非常にうまく機能します。
Jersey 2.xおよびSpring Boot 1.4.xでWebアプリケーションを作成する完全な例については、この回答を参照してください。