JAX-RS
JAX-RS는 현재 JSR-370에 의해 정의 된 Java로 REST 웹 서비스를 구현하기위한 스펙 입니다 . 이것은 현재 JSR 366에 의해 정의 된 Java EE 기술의 일부입니다 .
Jersey (GlassFish 및 Payara와 함께 제공)는 JAX-RS 참조 구현이지만 RESTEasy (JBoss EAP 및 WildFly와 함께 제공) 및 Apache CXF 와 같은 다른 구현도 있습니다. (TomEE 및 WebSphere와 함께 제공 있습니다.
스프링 프레임 워크
스프링 프레임 워크는 A는 전체 프레임 워크 는 자바 엔터프라이즈 응용 프로그램을 만들 수 있습니다. REST 기능은 Spring MVC 모듈 ( 모델보기 컨트롤러 기능 을 제공하는 동일한 모듈 )에 의해 제공됩니다. JAX-RS 구현이 아니며 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는 spring-boot-starter-jersey
Spring MVC 대신 REST 엔드 포인트에 JAX-RS 프로그래밍 모델을 사용할 수 있는 모듈을 제공합니다 . Jersey 2.x와 잘 작동합니다.
Jersey 2.x 및 Spring Boot 1.4.x를 사용하여 웹 애플리케이션을 작성하는 전체 예제는이 답변을 참조하십시오 .