Spring Boot Rest常用框架注解详情简介
目录
- 开始Spring Boot Rest的先决条件
- 在Spring Initializer创建Spring Boot项目
- Spring Boot注解
- @RestController
- @RequestMapping
- @RequestParam
- @PathVariable
- @RequestBody
- REST方法的特定注释
- @GetMapping
- @PostMapping和@PutMapping
- @DeleteMapping
前言:
让我们了解一下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