JAX-RS
JAX-RS是用于以Java实现REST Web服务的规范,当前由JSR-370定义。它是JSR
366当前定义的Java
EE技术的一部分。
泽西(GlassFish和Payara附带)是JAX-
RS参考实现,但是还有其他实现,例如RESTEasy(与JBoss
EAP和WildFly附带)和Apache CXF(与TomEE和WebSphere附带)。
spring框架
在Spring框架是一个完整的框架,它允许你创建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允许您将JAX-RS编程模型用于REST端点而不是Spring
MVC的模块。它与Jersey 2.x搭配使用效果很好。



