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注释获取。这用于函数的参数。它有各种选项,如requireddefaultValue等。然后将查询参数加载到指定的参数中。

@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}RequestMappingPathVariable中应该是相同的(没有{})。如果不匹配,则无法加载。

@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)

相关推荐

  • Springboot RestTemplate设置超时时间的简单方法

    目录 排查: Java Config配置 配置文件指定 RestTemplate 设置超时时间注意点 总结 RestTemplate未设置超时时间,导致RabbitMQ队列大量堆积,消费者假死,不进行消费,类似线程堵塞. 排查: 从日志排查问题,在从进入消费者到结束期间,会调用业务服务,然而通过开始时间至结束时间,花费的时间竟然高达100多秒,查看业务服务未发现异常.出现这种问题的原因也有可能在消费期间网络波动导致HTTP连接出现问题,一直处于等待状态.由此判断可能是HTTP超时时间未设置导致的

  • springboot集成RestTemplate及常见的用法说明

    目录 一.背景介绍 1.什么是RestTemplate? 2.RestTemplate的优缺点 二.配置RestTemplate 1.引入依赖 2.连接池配置 3.初始化连接池 4.使用示例 三.RestTemplate常用方法 1.getForEntity 2.getForObject 3.postForEntity 4.postForObject 5.postForLocation 6.PUT请求 7.DELETE请求 一.背景介绍 在微服务都是以HTTP接口的形式暴露自身服务的,因此在调用

  • Springboot之restTemplate的配置及使用方式

    目录 基础配置 以下为进阶配置和使用 1 场景 2 依赖 3 配置 4 使用 4.1 GET请求 4.2 POST请求 4.3 上传文件 在springboot项目中,可以直接注入RestTemplate使用,也可进行简单配置 基础配置 @Configuration public class RestTemplateConfig { @Bean public RestTemplate restTemplate(ClientHttpRequestFactory factory) { return

  • Spring Boot开发RESTful接口与http协议状态表述

    目录 一.RESTful风格API的好处 二.RESTfulAPI的设计风格 2.1.RESTful是面向资源的(名词) 2.2.用HTTP方法体现对资源的操作(动词) 2.3.HTTP状态码 2.4.Get方法和查询参数不应该改变数据 2.5.使用复数名词 2.6.复杂资源关系的表达 2.7.高级用法:HATEOAS 2.8.资源过滤.排序.选择和分页的表述 2.9.版本化你的API 参考: 一.RESTful风格API的好处 API(Application Programming Inter

  • springboot @Controller和@RestController的区别及应用详解

    目录 @Controller和@RestController的区别及应用 @Controller和@RestController区别 @Controller的应用 @RestController的应用 @Controller和@RestController区别的小坑 1.如果注解Controller使用@RestController 2.如果需要返回到指定页面(jsp/html) @Controller和@RestController的区别及应用 @Controller和@RestControl

  • 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 的常用注解使用小结

    @RestController和@RequestMapping注解 4.0重要的一个新的改进是@RestController注解,它继承自@Controller注解.4.0之前的版本,Spring MVC的组件都使用@Controller来标识当前类是一个控制器servlet.使用这个特性,我们可以开发REST服务的时候不需要使用@Controller而专门的@RestController. 当你实现一个RESTful web services的时候,response将一直通过response

  • Spring Boot整合mybatis使用注解实现动态Sql、参数传递等常用操作(实现方法)

    前面介绍了Spring Boot 整合mybatis 使用注解的方式实现数据库操作,介绍了如何自动生成注解版的mapper 和pojo类. 接下来介绍使用mybatis 常用注解以及如何传参数等数据库操作中的常用操作. 其实,mybatis 注解方式 和 XML配置方式两者的使用基本上相同,只有在构建 SQL 脚本有所区别,所以这里重点介绍两者之间的差异,以及增删改查,参数传递等注解的常用操作. 详解SpringBoot 快速整合Mybatis(去XML化+注解进阶)已经介绍过了,不清楚的朋友可

  • Spring Boot如何通过自定义注解实现日志打印详解

    前言 在我们日常的开发过程中通过打印详细的日志信息能够帮助我们很好地去发现开发过程中可能出现的Bug,特别是在开发Controller层的接口时,我们一般会打印出Request请求参数和Response响应结果,但是如果这些打印日志的代码相对而言还是比较重复的,那么我们可以通过什么样的方式来简化日志打印的代码呢? SpringBoot 通过自定义注解实现权限检查可参考我的博客:SpringBoot 通过自定义注解实现权限检查 正文 Spring AOP Spring AOP 即面向切面,是对OO

  • spring boot Slf4j日志框架的体系结构详解

    目录 前言 一.五花八门的日志工具包 1.1. 日志框架 1.2.日志门面 1.3日志门面存在的意义 二.日志框架选型 三.日志级别 四.常见术语概念解析 总结 前言 刚刚接触到java log日志的同学可能会被各种日志框架吓到,包括各种日志框架之间的jar总是发生冲突,另很多小伙伴头疼不已.那我们本篇的内容就是将各种java 日志框架发展过程,以及他们之间的关系,以及如何选型来介绍给大家. 一.五花八门的日志工具包 1.1. 日志框架 JDK java.util.logging 包:java.

  • Spring Boot 整合 Mybatis Annotation 注解的完整 Web 案例

    前言 距离第一篇 Spring Boot 系列的博文 3 个月了.虽然 XML 形式是我比较推荐的,但是注解形式也是方便的.尤其一些小系统,快速的 CRUD 轻量级的系统. 这里感谢晓春 http://xchunzhao.tk/ 的 Pull Request,提供了 springboot-mybatis-annotation 的实现. 一.运行 springboot-mybatis-annotation 工程 然后Application 应用启动类的 main 函数,然后在浏览器访问: http

  • spring boot使用@Async异步注解的实现原理+源码

    1.java的大部分接口的方法都是串行执行的,但是有些业务场景是不需要同步返回结果的,可以把结果直接返回,具体业务异步执行,也有些业务接口是需要并行获取数据,最后把数据聚合在统一返回给前端. 通常我们都是采用多线程的方式来实现上述业务功能,但spring 提供更优雅的方式来实现上述功能,就是@Async 异步注解,在方法上添加@Async,spring就会借助AOP,异步执行方法. 1.如何启用@Async spring boot通过@EnableAsync 注解启用@Async异步注解 实现A

  • spring boot项目使用@Async注解的坑

    目录 背景 @Async注解是如何起作用的? AsyncAnnotationBeanPostProcessor AOP是如何实现的? Spring是如何解决循环依赖的 为什么@Async注解遇上循环依赖,Spring无法解决? 出现循环依赖异常之后如何解决? 背景 前段时间,一个同事小姐姐跟我说她的项目起不来了,让我帮忙看一下,本着助人为乐的精神,这个忙肯定要去帮. 于是,我在她的控制台发现了如下的异常信息: Exception in thread "main" org.springf

  • Spring Boot企业常用的starter示例详解

    SpringBoot简介# Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. Spring Boot让我们的Spring应用变的更轻量化.比如:你可以仅仅依靠一个Java类来运行一个Spring引用.你也可以打包你的应用为

  • Spring Boot 集成Dubbo框架实例

    使用Spring Boot 与Dubbo集成,这里我之前尝试了使用注解的方式,简单的使用注解注册服务其实是没有问题的,但是当你涉及到使用注解的时候在服务里面引用事务,注入其他对象的时候,会有一些问题.于是我就果断放弃了注解了,使用的是XML,这里可能介绍的是Dubbo,但是如果使用Dubbox的话,基本上是兼容的.接下来,将说说使用XML的方式与Spring Boot在一起开发. 1.创建工程在pom.xml中加入依赖 创建工程名为: (1)springboot-dubbo-provide (2

随机推荐