拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 REST API:JAX-RS与Spring

REST API:JAX-RS与Spring

白鹭 - 2021-11-24 600 0 0

1.概述

在本教程中,我们将看到JAX-RS和用于REST API开发的Spring MVC之间的区别。

2. Jakarta RESTful Web服务

要成为JAVA EE世界的一部分,功能必须具有规范,兼容的实现和TCK 。因此, JAX-RS**是用于构建REST服务的一组规范它最著名的参考实现是RESTEasy和Jersey** 。

现在,让我们通过实现一个简单的控制器来熟悉Jersey:

@Path("/hello")

 public class HelloController {



 @GET

 @Path("/{name}")

 @Produces(MediaType.TEXT_PLAIN)

 public Response hello(@PathParam("name") String name) {

 return Response.ok("Hello, " + name).build();

 }



 }

在上方,端点返回一个简单的“文本/纯文本”响应,作为注释@Produces状态。特别是,我们公开了一个hello HTTP资源,该资源接受带有两个@Path批注的name我们还需要使用注释@GET来指定它是一个GET请求。

3.带有Spring MVC的REST

Spring MVC是Spring Framework的模块,用于创建Web应用程序。它为REST框架添加了REST功能。

让我们使用Spring MVC制作与上述相同的GET

@RestController

 @RequestMapping("/hello")

 public class HelloController {



 @GetMapping(value = "/{name}", produces = MediaType.TEXT_PLAIN_VALUE)

 public ResponseEntity<?> hello(@PathVariable String name) {

 return new ResponseEntity<>("Hello, " + name, HttpStatus.OK);

 }



 }

通过查看代码,@ @RequestMapping指出我们正在处理一个hello HTTP资源。特别是,通过@GetMapping批注,我们将其指定为GET请求。它接受名为name的参数,并返回“文本/纯文本”响应。

4.差异

JAX-RS依赖于提供一组Java注释并将其应用于纯Java对象。的确,这些注释有助于我们抽像出客户端与服务器之间通信的底层细节。为了简化其实现,它提供了注释来处理HTTP请求和响应,并将其绑定到代码中。 JAX-RS只是一个规范,它需要使用兼容的实现

另一方面, Spring MVC**是具有REST功能的完整框架**。像JAX-RS一样,它也为我们提供了有用的注释,以从底层细节中抽像出来。它的主要优势是成为Spring Framework生态系统的一部分。因此,它允许我们像其他任何Spring模块一样使用依赖注入。此外,它可轻松与Spring AOP,Spring Data REST和Spring Security等其他组件集成。

5.结论

在这篇快速文章中,我们研究了JAX-RS和Spring MVC之间的主要区别。

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *