JAX-RS和Spring Rest之间的区别

我对 (因为JAX-RS只是规格)也许应该使用Jersey进行比较)与

之间的区别感到困惑。我试图在线搜索更多信息,但变得更加混乱。我公司正在使用Spring MVC开发Restful API

令人困惑的部分是,JAX-RS代表用于 ,在spring,我还使用Java开发RESTful Web

Services,所以我实际上并没有区别。Spring是否遵循JAX-RS规范?

从我所知道到现在:

  1. JAX-RS是一个蓝图/规范,它具有Jersey,RESTeasy等实现。

回答:

回答:

JAX-RS是用于以Java实现REST Web服务的规范,当前由JSR-370定义。它是JSR

366当前定义的Java

EE技术的一部分。

泽西(GlassFish和Payara附带)是JAX-

RS参考实现,但是还有其他实现,例如RESTEasy(与JBoss

EAP和WildFly附带)和Apache CXF(与TomEE和WebSphere附带)。

回答:

在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提供了spring-boot-starter-jersey允许您将JAX-RS编程模型用于REST端点而不是Spring

MVC的模块。它与Jersey 2.x搭配使用效果很好。

以上是 JAX-RS和Spring Rest之间的区别 的全部内容, 来源链接: utcz.com/qa/432726.html

回到顶部