Spring Boot Rest常用注解简介

让我们了解一下Spring Boot Rest框架注释。它是如此简单和快速。在本文中,我将尝试解释Spring Boot Rest API的不同注释。这些注释是Spring Boot中REST API所必需的。

开始Spring Boot Rest的先决条件

最需要了解的是Spring容器或IOC。除此之外,还必须具备Java注释的基本知识。因为Spring Boot应用程序充满了注释。最后但并非最不重要的一点是,应该澄清REST的概念,至少是基本概念。例如GET、POST、PUT、DELETE和Request body和response、headers等。

在Spring Initializer创建Spring Boot项目

Spring Boot最棒的一点是它有一个web应用程序用于入门。只需点击几个表单字段和按钮,就可以准备好初学者文件。这包括pom。包含所有必需依赖项的xml。只需转到Spring Initializer: https://start.spring.io/ 。如下面的屏幕截图所示,填写适当的数据。然后单击右上角的添加依赖项按钮。键入并选择Web。我还将为log和Pojo添加Lombok。

完成后,只需单击generate按钮,就会下载一个包含这些文件的zip文件(pom.xml)。将其解压缩并在IDE中打开。我将使用IntelliJ IDEA。这个IDE帮助我利用各种功能提高工作效率。IDE常用插件

Spring Boot注解

整个Spring Boot都依赖于注释。对于不同的需求和过程,有各种注释。其余部分有4-5个主要注释。让我们一个接一个地看它们,并将它们应用到我们的示例中。

@RestController

类上使用了 @RestController 注释。它将类定义为Rest的控制器。这是一个RESTful版本的控制器,添加了 ResponseBy 的组合。这样,您的响应就会自动转换为JSON、XML或任何已定义的响应类型,而无需单独使用 ResponseBy 注释。

@RestController
public class ArticleRestController {}

其余的注释在 @RestController 类下使用。

@RequestMapping

用于将特定端点映射到函数或方法。这有助于定义端点的路径、方法、响应类型、请求类型等。

@RequestMapping(value = "/articles", method = RequestMethod.GET,  produces = "application/json")
public List<Article> getArticles() { }

在上面的示例中,值表示它映射到的路径。例如, localhost:8080/articles 。方法类型是GET,它生成“ application/json ”作为响应(不过,这是默认值,您可以跳过它)。

@RequestParam

URL中的查询参数,即 ?key=value&key1=value1 由 @RequestParam 注释获取。这用于函数的参数。它有各种选项,如 required 、 defaultValue 等。然后将查询参数加载到指定的参数中。

@RequestMapping(value = "/article", method = RequestMethod.GET)
public Article getArticleByName(
   @RequestParam(value = "articleName", required = true) String articleName
) {}

在上面的例子中,如果我们调用URL GET localhost/article?articleName=springboot ,将在articleName参数中加载“springboot”。我已经把 reuired=true ,所以如果我们不传递 articleName ,它将向用户抛出一个错误。

@PathVariable

有没有想过,在不传递查询参数的情况下,服务器如何知道要加载哪篇文章?看看这篇文章的网址 post URL不包含查询参数,而是一个普通的斜杠分隔字符串。服务器在 PathVariable 的帮助下读取它,它看起来是这样的, /article/{articleslaug} 。替换 {articleSlug} 的任何字符串都将被视为 PathVariable 。

@RequestMapping(value = "/article/{articleSlug}", method = RequestMethod.GET)
public Article getArticle(@PathVariable("articleSlug") String articleSlug) {}

请记住, {articleSlug} 在 RequestMapping 和 PathVariable 中应该是相同的(没有 {} )。如果不匹配,则无法加载。

@RequestBody

对于POST或PUT方法,您不会通过URL获取所有数据,对吗?这些方法有一个适当的请求主体。 RequestBody 注释有助于将给定的请求正文自动映射到参数。主要是JSON到POJO。

@RequestMapping(value = "/article", method = RequestMethod.POST)
public Article createArticle(@RequestBody NewArticlePojo newArticle){}

请求主体将自动映射到 NewArticlePojo 类,并基于键填充字段。

REST方法的特定注释

在上面的解释中,您一定已经看到我使用特定的方法编写了 RequestMapping 。但这太多余了。为了解决这个问题,Spring Boot提供了预定义的方法映射。这些只是 @RequestMapping 的扩展。

@GetMapping

@GetMapping 用于将 RequestMapping 替换为 method=RequestMethod 。获取参数。现在通过查看,我们知道这是一个GET请求。

@PostMapping和@PutMapping

PostMapping 是用 method=RequestMethod 替换 RequestMapping 。类似地, PutMapping 将用 method=RequestMethod 替换 RequestMethod.PUT

@DeleteMapping

DeleteMapping用 method=RequestMethod 替换 RequestMethod.DELETE

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值