2024年最新狂神Swagger笔记(Swagger轻松入门),java高级工程师面试

最后

手绘了下图所示的kafka知识大纲流程图(xmind文件不能上传,导出图片展现),但都可提供源文件给每位爱学习的朋友

image.png

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 二、SpringBoot集成Swagger

    • 1.引入库
  • 2.导入依赖

  • 3.配置Swagger

  • 4.进入测试

  • Swagger配置扫描接口

  • 配置是否启动Swagger

  • 配置API文档分组

  • 实体类的配置

  • 文档注解

  • 总结


前言

================================================================

说起Swagger就不得不说前后端分离

当前最主流的前后端分离技术栈:Vue+Springboot

后端时代:

前端只用管理静态页面:html

最后统一交给后端,后端将其修改为jsp,在整个过程中,后端充当主力

前后端分离时代:

后端:后端控制层,服务层,数据访问层【后端团队】

前端:前端控制层,视图层【前端团队】

前端可以自定义一些伪后端数据:json,在写的时候就存在,不需要后端,前端工程依旧能够跑起来

那么前端后端如何交互?

此时我们可以考虑API

前后端分离好处:

  • 前后端相对独立,松耦合

  • 前后端设置可以部署在不同的服务器上

产生的问题:

  • 前后弹集成联调,前端人员和后端人员无法做到及时协商,尽早解决,最终导致问题爆发;

解决方式:

  • 首先指定schema[计划的提纲],实时更新最新的API,降低集成风险

  • 早期:指定word计划文档

  • 前后端分离时期:

前端测试后端接口:postman

后端提供接口,需要实时更新最新的消息及改动

一、Swagger

=======================================================================

  • 号称世界上最流行的Api框架

  • RestFul Api 文档在线自动生成工具,Api文档与Api定义同步更新

  • 直接运行,可以在线测试API接口

  • 支持多种语言:(Java,php等)

官网:http://swagger.io/

二、SpringBoot集成Swagger

===================================================================================

1.引入库


2.导入依赖


  • swagger2

  • ui

io.springfox

springfox-swagger2

2.9.2

io.springfox

springfox-swagger-ui

2.9.2

3.配置Swagger


@EnableSwagger2 用来开启Swagger2

@Configuration

@EnableSwagger2 //开启Swagger2

public class SwaggerConfig {

}

4.进入测试


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());

}

}

Swagger配置扫描接口

===========================================================================

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();

}

配置是否启动Swagger

===========================================================================

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文档)

image

除此之外,前文所提及的Alibaba珍藏版mybatis手写文档以及一本小小的MyBatis源码分析文档——《MyBatis源码分析》等等相关的学习笔记文档,也皆可分享给认可的朋友!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

份xmind文件的知识梳理大纲脑图,这样也可方便后续的复习,且都是自己的理解,相信随便瞟几眼就能迅速过完整个知识,脑补回来。下方即为我手绘的MyBtis知识脑图,由于是xmind文件,不好上传,所以小编将其以图片形式导出来传在此处,细节方面不是特别清晰。但可给感兴趣的朋友提供完整的MyBtis知识脑图原件(包括上方的面试解析xmind文档)

[外链图片转存中…(img-p8WvwJqW-1715252098768)]

除此之外,前文所提及的Alibaba珍藏版mybatis手写文档以及一本小小的MyBatis源码分析文档——《MyBatis源码分析》等等相关的学习笔记文档,也皆可分享给认可的朋友!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 15
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值