最后
手绘了下图所示的kafka知识大纲流程图(xmind文件不能上传,导出图片展现),但都可提供源文件给每位爱学习的朋友
-
二、SpringBoot集成Swagger
-
- 1.引入库
-
2.导入依赖
-
3.配置Swagger
-
4.进入测试
-
Swagger配置扫描接口
-
配置是否启动Swagger
-
配置API文档分组
-
实体类的配置
-
文档注解
-
总结
================================================================
说起Swagger就不得不说前后端分离
当前最主流的前后端分离技术栈:Vue+Springboot
后端时代:
前端只用管理静态页面:html
最后统一交给后端,后端将其修改为jsp,在整个过程中,后端充当主力
前后端分离时代:
后端:后端控制层,服务层,数据访问层【后端团队】
前端:前端控制层,视图层【前端团队】
前端可以自定义一些伪后端数据:json,在写的时候就存在,不需要后端,前端工程依旧能够跑起来
那么前端后端如何交互?
此时我们可以考虑API
前后端分离好处:
-
前后端相对独立,松耦合
-
前后端设置可以部署在不同的服务器上
产生的问题:
- 前后弹集成联调,前端人员和后端人员无法做到及时协商,尽早解决,最终导致问题爆发;
解决方式:
-
首先指定schema[计划的提纲],实时更新最新的API,降低集成风险
-
早期:指定word计划文档
-
前后端分离时期:
前端测试后端接口:postman
后端提供接口,需要实时更新最新的消息及改动
=======================================================================
-
号称世界上最流行的Api框架
-
RestFul Api 文档在线自动生成工具,Api文档与Api定义同步更新
-
直接运行,可以在线测试API接口
-
支持多种语言:(Java,php等)
===================================================================================
-
swagger2
-
ui
io.springfox
springfox-swagger2
2.9.2
io.springfox
springfox-swagger-ui
2.9.2
@EnableSwagger2 用来开启Swagger2
@Configuration
@EnableSwagger2 //开启Swagger2
public class SwaggerConfig {
}
http://localhost:8080/swagger-ui.html
package com.kuang.swagger.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList;
@Configuration
@EnableSwagger2 //开启Swagger2
public class SwaggerConfig {
@Bean
public Docket docket(){
//配置了Swagger的Docket的Bean实例
// DocumentationType documentationType = new DocumentationType();
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo());
}
//配置swagger信息需要apiInfo类
private ApiInfo apiInfo(){
//作者信息
Contact contact = new Contact(“wql”,“https://www.baidu.com/”,“845906996@qq.com”);
return new ApiInfo(
“wql的Swagger日记”,
“本人描述”,
“v1.0”,
“https://www.baidu.com/”,
contact,
“Apache 2.0”,
“http://www.apache.org/licenses/LICENSE-2.0”,
new ArrayList());
}
}
===========================================================================
RequestHandlerSelectors()配置要扫描接口的方式
basePackage()指定扫描的包
any()扫描全部的包
none()都不扫描
withClassAnnotation()扫描类上的注解,参数是注解的反射对象
withMethodAnnotation()扫描方法上的注解
Docket.select()
@Bean
public Docket docket(){
//配置了Swagger的Docket的Bean实例
// DocumentationType documentationType = new DocumentationType();
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//RequestHandlerSelectors,配置要扫描接口的方式
//basePackage指定扫描的包
//any扫描全部的包
//none()都不扫描
//withClassAnnotation()扫描类上的注解,参数是注解的反射对象
//withMethodAnnotation()扫描方法上的注解
.apis(RequestHandlerSelectors.basePackage(“com.kuang.swagger.controller”))
//paths(),过滤路径,只让/kuang开头的请求通过
.paths(PathSelectors.ant(“/kuang/**”))
.build();
}
===========================================================================
enable是否启动swagger,如果为false,则swagger不能在浏览器中访问
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.enable(false)
swagger启动失败
那么如果我们希望Swagger在某一个环境中使用,在其他时候不使用怎么办
dev环境下:
server.port=8081
pro环境下
server.port=8080
application.properties文件
spring.profiles.active=dev
此时我们处于dev环境下,我们希望swagger在dev环境下能使用,在其他环境下不能使用
Profiles profiles = Profiles.of(“dev”,“test”);
//获取生产环境
//通过environment.acceptsProfiles(profiles)判断自己是否处在指定环境
boolean flag = environment.acceptsProfiles(profiles);
最后:学习总结——MyBtis知识脑图(纯手绘xmind文档)
学完之后,若是想验收效果如何,其实最好的方法就是可自己去总结一下。比如我就会在学习完一个东西之后自己去手绘一份xmind文件的知识梳理大纲脑图,这样也可方便后续的复习,且都是自己的理解,相信随便瞟几眼就能迅速过完整个知识,脑补回来。下方即为我手绘的MyBtis知识脑图,由于是xmind文件,不好上传,所以小编将其以图片形式导出来传在此处,细节方面不是特别清晰。但可给感兴趣的朋友提供完整的MyBtis知识脑图原件(包括上方的面试解析xmind文档)
除此之外,前文所提及的Alibaba珍藏版mybatis手写文档以及一本小小的MyBatis源码分析文档——《MyBatis源码分析》等等相关的学习笔记文档,也皆可分享给认可的朋友!
份xmind文件的知识梳理大纲脑图,这样也可方便后续的复习,且都是自己的理解,相信随便瞟几眼就能迅速过完整个知识,脑补回来。下方即为我手绘的MyBtis知识脑图,由于是xmind文件,不好上传,所以小编将其以图片形式导出来传在此处,细节方面不是特别清晰。但可给感兴趣的朋友提供完整的MyBtis知识脑图原件(包括上方的面试解析xmind文档)
[外链图片转存中…(img-p8WvwJqW-1715252098768)]
除此之外,前文所提及的Alibaba珍藏版mybatis手写文档以及一本小小的MyBatis源码分析文档——《MyBatis源码分析》等等相关的学习笔记文档,也皆可分享给认可的朋友!