为什么要使用Spring Framework在Java中开发RESTful Web服务? 有什么优势?为什么它比现有的其他框架和库更好? 好吧,我认为使用Spring开发RESTful Web服务的最重要原因是您可以利用Spring MVC的经验来开发RESTful Web服务。

Spring对开发RESTful Web服务提供了出色的支持

从Spring 3.0版开始,在最后几个版本中,它对Spring MVC进行了许多增强,以提供一流的REST支持。 它提供了专用的注释,例如@RestController和@ResponseStatus以使RESTful资源的开发在Spring 4.0中更加容易。

它还不仅帮助您创建RESTful Web服务,而且还提供了消耗REST资源的类,例如,您可以使用RestTemplate类消耗RESTful资源。

还有更多的实用程序类和批注,这些类和批注使Spring中的RESTful Web服务的开发更加轻松,无缝,我将在本文中分享其中的两个,以证明我的观点:使用Spring开发RESTful Web服务是正确的决定。

Spring如何支持RESTful Web服务?

正如我在第一段中告诉您的那样,我们可以使用Spring MVC创建和使用RESTful Web服务。 现在,让我们更详细地了解这些支持,以便您可以充分利用它们,并快速开发您一直想要的RESTful服务。

1.在Spring MVC中,控制器可以处理对所有HTTP方法的请求,这是RESTful Web服务的基础。 例如,您可以处理GET方法来执行读取操作,POST方法来创建资源,PUT方法来更新资源以及DELETE方法来从服务器中删除资源。 从Spring 3.2开始,您还可以处理PATCH请求。 2.对于REST,数据的表示非常重要,这就是为什么Spring MVC允许您使用@ResponseBody批注和各种HttpMessgeConverter实现完全绕过基于View的呈现。

通过使用这两者,您可以直接向客户端发送响应,例如,客户端所需的资源以及客户端所需的格式。 在接下来的文章中,我将在此博客中写有关@ResponseBody批注和HttpMessageConverter更多信息。

spring6 RestClient 使用_java

@RestController注释,以使RESTful Web服务的开发更加容易。

如果使用@RestController而不是@Controller注释控制器类,则Spring @RestController消息对话应用于控制器中的所有处理程序方法。

@ResponseBody注释对每个方法进行注释。 这也使您的代码更加简洁。 您可以在Spring的@Conroller和@RestController之间的差异中了解更多信息。

4.

如果您还记得的话,我们使用@RequestParam来获取那些查询参数的值,但是不用担心,Spring MVC还提供了一个@PathVariable批注,可以从URL提取数据。 它允许控制器处理对参数化URL的请求。

您可以在Spring的@RequestParam和@PathVaraible之间的区别中了解有关@PathVariable更多信息。

5.

例如, ContentNegotiatingViewResolver可以查看请求的文件扩展名或Accept标头,以查找客户端资源的正确表示形式。

6.与@ResponseBody批注类似, 该批注用于将响应转换为客户端想要的格式(通过使用HttpMessageConverts ),Spring MVC还提供了@RequestBody批注,该批注使用HTtpMethodConverter实现将入站HTTP数据转换为传递给控制器的Java对象。处理程序方法。

7. Spring Framework还提供了一个Template类RestTemplate ,类似于JdbcTemplate和JmsTemplate ,它们可以消耗REST资源。 您可以使用此类测试RESTful Web服务或开发REST客户端。

我已经在较早的博客文章中讨论过此类,并且您可以在本教程中看到有关使用RestTemplate从Java中的RESTful Web服务使用JSON的实时示例。

Spring MVC框架的一些重要功能,可帮助开发RESTful Web服务。 正如我告诉我选择Spring来开发RESTful资源的最重要的原因是,我可以利用现有的框架知识,这意味着学习曲线并不困难。 如果从高层次看,开发RESTful服务与开发Web应用程序并没有太大区别。

根本的区别是,在前者的情况下,我们主要与人类用户打交道,而在REST的情况下,您必须与非人类用户打交道,主要是丰富JavaScript客户端和移动应用程序。 然后,此关键差异得出其他差异,例如,以JSON或XML而不是HTML表示数据,这适合人类用户,但不适用于非人类系统。 您可能喜欢的其他Spring和REST资源

Java中的Restlet,Jersey和RESTEasy之间的区别?

Spring MVC中DispatcherServlet的用途是什么?

如何在Java Web应用程序中启用Spring安全性?

感谢您阅读本文,如果您喜欢这些使用Spring开发RESTful Web服务的原因,请与您的朋友和同事分享。 如果您有任何问题或反馈,请留下笔记。

翻译自: https://www.javacodegeeks.com/2018/01/7-reasons-use-spring-develop-restful-web-services-java.html