SpringBoot入门(1)RESTful风格api基本注解使用,Mockito测试,Swagger2文档

本文介绍了SpringBoot入门知识,包括RESTful风格API的常用注解,如@RequestBody、@ResponseBody、@RequestMapping等。讨论了SpringBoot的便捷插件,如Lombok、DevTools等,并讲解了Mockito测试和如何使用Swagger2生成API文档。此外,还提到了统一返回信息和错误处理策略。
摘要由CSDN通过智能技术生成

啊快入职了还是把框架学一下…虽然还不晓得是啥方向…
俺是跟着B站字母哥的视频梳理的(感觉他的视频比较精简的亚子)

概念知识

不得不说SpringBoot写CRUD还真比不用框架方便好多。

首先这玩意与Spring不同的地方在于它内置了Tomcat,所以无需另外启动Tomcat,而且可以自动装配(然后这玩意就又是个面试考点…算了以后再学),这就又比Spring方便不少。

只需引入一个Spring Boot Starter基本上就可以干活了,它引入了一些常用的类库。
在这里插入图片描述
SpringBoot若使用Maven,它的POM文件默认继承了spring-boot-starter-parent,方便对导入jar包进行版本控制,避免出现冲突。

然后还提供了一些好用的API对数据库提供支持
在这里插入图片描述

方(偷)便(懒)插件(本机为IDEA)

lombok

这个介绍的应该很多,首先在Settings->Plugins中安装Lombok插件,然后再导入相关的Lombok包。
经常使用的的注解有:
1.@Data:生成get/set方法
2.@Buider:生成建造者模式
3.@AllArgsConstructor/@NoArgsConstructor:生成全域/空参构造器
4.@Slf4j:自动引入Logger日志常量

 		<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

lombok中的注解是通过前端编译器(javac)在生成语法树时,扫描到如果存在注解,将对应的语法树插入到现语法树中,然后生成字节码。

devtools实现热加载

使用俩类加载器,一个用于加载依赖(这些一般不会变),一个用于加载自编代码。
导入以下jar包

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-devtools</artifactId>
   <optional>true</optional>
</dependency>

然后使用快捷键Ctrl+shift+alt+/,点击在这里插入图片描述
选中
在这里插入图片描述然后每次改动代码之后仅需要使用快捷键ctrl+F9即可重新编译

Codota

代码补全与可能的补全方式,同时提供一些类库的常见使用。

Auto filling Java call arguments

自动填充方法参数
点击ALT+回车,选中在这里插入图片描述

GsonFormat4DataBinding

将JSON转换为实体类
点击alt+D
在这里插入图片描述将JSON粘贴到其中,选中OK即可。

Rainbow Brackets

彩虹括号,方便看少了哪层括号

Maven Helper

方便看是否存在Jar包冲突
选中POM.xml下方多了一个Dependency Analyer
在这里插入图片描述

Key promoter X

方便记忆快捷键

RESTful风格的API

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

SpringBoot常用注解

HTTP协议的四种传参方式

在这里插入图片描述

@RequestBody

修饰请求参数,注解用于接收HTTP的body,默认使用JSON格式,可用于复杂数据的传参

public AjaxResponse saveArticle(@RequestBody Article article)

@ResponseBody

修饰返回值,说明携带响应数据,加上这个注解就说明为一个数据接口,不会走视图解析

public @ResponseBody AjaxResponse saveArticle(@RequestBody Article article)

在这里插入图片描述

@RequestMapping

用于标注服务端点。

@RequestMapping("/rest")
public class ArticleController 

在这里插入图片描述
也有指定的方法的@DeleteMapping@PutMappin@PostMapping@GetMapping

@PostMapping("/articles")
    public AjaxResponse saveArticle(@RequestBody Article article)

@RestController与@Controller

@RestController
public class ArticleController 

@RestController: 说明被标注的类为Spring的Bean,需要被注入到Spring上下文环境中。所有被标注@RequestMapping的方法都是HTTP服务端点。

@RestController: 相当于@Controller+n×@ResponseBody

@PathVariable 与@RequestParam

@PathVariable: 将url后的参数传入API中

 @GetMapping("/articles/{id}")
    public AjaxResponse getArticle(@PathVariable("id") Integer id)

**@RequestParam:**通过表单或者ajax模拟表单传参

@DeleteMapping("/articles")
    public AjaxResponse deleteArticle(@PathParam("id") Integer id)

CRUD测试代码

@Slf4j
//所有的方法都对外提供WEB服务
//默认给,每个方法加上@ResponseBody注解,表示响应json格式的内容
//@Controller+@ResponseBody
@RequestMapping("/rest")
@RestController
public class ArticleController {
   
//    @Resource
//    ArticleService articleService;
    //查询一篇文章根据id
    //@RequestMapping(value = "/articles/{id}",method = RequestMethod.GET)
    @GetMapping("/articles/{id}")
    public AjaxResponse getArticle(@PathVariable("id") Integer id){
   
        Article article = Article.builder().id(id).email("920@qq.com").firstName("y").lastName("dl").createTime(new Date()).build();
        log.info("article:"+article);
        AjaxResponse ajaxResponse = AjaxResponse.success(article);
        return ajaxResponse;
    } 
    @PostMapping
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值