文章目录

  • 写在最前面
  • 代码
    • 1. 准备项目
    • 2. 配置类
    • 3. 控制器类(进行测试)
    • 4. 启动器
  • 网页查看效果

写在最前面

SpringBoot 项目,一般会提供一大堆的 Controller 来供人使用,很多时候,我们会用 Swagger来写代码文档,可以在页面上来调试,查看我们提供的那些控制器。

代码

1. 准备项目

新建一个SpringBoot 项目。
我这里使用的是 2.5.7版本。
pom.xml 文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.7</version><relativePath/></parent><groupId>com.example</groupId><artifactId>boot-demo</artifactId><version>0.0.1-SNAPSHOT</version><name>boot-demo</name><description>Demo project for Spring Boot</description><properties><java.version>11</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--配合Swagger2 形成一个knife4j页面 --><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>2.0.4</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>${maven-compiler-plugin.version}</version><inherited>true</inherited><configuration><source>11</source><target>11</target><parameters>true</parameters></configuration></plugin></plugins></build>
</project>

2. 配置类

package com.example.config;import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import io.swagger.annotations.ApiOperation;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
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;/*** Swagger2 配置 + knife4j美化** @version V1.0* @author: fengjinsong* @date: 2022年02月18日 15时20分*/
@EnableKnife4j
@Configuration
@EnableSwagger2
@Import(BeanValidatorPluginsConfiguration.class)
@ConditionalOnProperty(value = {"knife4j.enable"}, matchIfMissing = true)
public class Swagger2Config {@Beanpublic Docket customDocket() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).build();}// 构建 api文档的详细信息函数private ApiInfo apiInfo() {return new ApiInfoBuilder().title("测试").version("1.0.0").description("系统API描述").contact(new Contact("创建人姓名","http://XXX","")).build();}
}

3. 控制器类(进行测试)

package com.example.controller;import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.util.Map;
import java.util.concurrent.ThreadLocalRandom;/*** Swagger 测试** @version V1.0* @author: fengjinsong* @date: 2022年02月18日 15时25分*/
@Api(tags = "测试控制器")
@RestController("/t1")
public class TestController {@ApiOperation(value = "测试控制器-测试方法", notes = "暂无描述")@GetMapping("/test")public Map<String, Object> test(@ApiParam(value = "前缀") @RequestParam(name = "prefix") String prefix){return Map.of(prefix + "-test()", ThreadLocalRandom.current().nextInt(1000));}
}

4. 启动器

package com.example;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.swagger2.annotations.EnableSwagger2;/*** 启动器*/
@EnableSwagger2
@SpringBootApplication
public class BootDemoApplication {public static void main(String[] args) {SpringApplication.run(BootDemoApplication.class, args);}
}

网页查看效果

访问:http://localhost:8080/doc.html

SpringBoot 整合 Swagger2 + Knife4j相关推荐

  1. SpringBoot学习笔记(16)----SpringBoot整合Swagger2

    Swagger 是一个规范和完整的框架,用于生成,描述,调用和可视化RESTful风格的web服务 http://swagger.io Springfox的前身是swagger-springmvc,是 ...

  2. 业务规范之springboot整合swagger2

    业务规范(整合swagger2) ###业务规范之springboot整合swagger2 ###业务规范之统一验证 ###业务规范之统一返回体 ###业务规范之统一异常处理和统一响应 二.整合swa ...

  3. springboot整合 swagger2

    springboot整合 swagger2 引入依赖 <!-- swagger --><dependency><groupId>io.springfox</g ...

  4. SpringBoot整合Swagger2教程

    SpringBoot整合Swagger2教程 环境说明 springboot 版本 2.4.4 swagger2 版本 2.9.2 工程准备 创建Springboot工程.这一步不会的可先去Hello ...

  5. springboot整合swagger+knife4j

    springboot整合swagger+knife4j 参考网址: https://mp.weixin.qq.com/s/KlYj5JuJSJYQQ47mQu7b1w swagger配置参考文档 sw ...

  6. Swagger的安装以及SpringBoot整合Swagger2实现SwaggerAPI文档测试

    前言 本篇博客是本人在网上学习Swagger所产出的个人笔记.主要内容有: 1.Swagger的安装 2.Swagger的介绍 3.Swagger2中常用的注解 4.快速上手案例 准备工作:Swagg ...

  7. SpringBoot整合Swagger2

    整合Swagger2 1.Swagger介绍 前后端分离开发模式中,api文档是最好的沟通方式. Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web ...

  8. springboot 整合 swagger2 配置账号密码登录 demo代码

    配置spring security登录可参考: springboot整合spring security安全框架-简单验证账号密码 一.pom文件引入swagger依赖 <!-- swagger2 ...

  9. SpringBoot整合Swagger2实现接口文档

    展示一下 访问方式一 访问地址:http://localhost:8080/swagger-ui.html#/ 首页 详情页 访问方式二 访问地址:http://localhost:8080/doc. ...

最新文章

  1. AfxOleInit()和::CoInitialize(NULL)区别
  2. 学python可以干嘛-学 Python 都用来干嘛的?
  3. Windows server 2003 体系结构
  4. SQL Server T-SQL编程:数据库用户与安全设置
  5. (找规律)Magic of David Copperfield
  6. 第二次小组实践作业小组每日进度汇报:2017-11-29
  7. C#的变迁史 - C# 4.0 之线程安全集合篇
  8. JS内置对象练习(慕课网题目)
  9. 工厂如何引入ERP生产管理系统
  10. 三菱触摸屏(GS2110)触摸屏经宇电AI-mobdus485通讯转换器与2个宇电70482D7多路温度模块直接通讯实例
  11. 移动应用专项测试的思路和方法
  12. C++:剑指Offer精讲1.整数除法
  13. java修饰词严格程度_Java修饰词的总结
  14. 优秀Android开发源码合集(附解析)程序员进阶宝典
  15. u盘电视测试软件,智能电视无法识别U盘里的APK文件?当贝市场教你搞定
  16. Python的电子邮件操作
  17. 2022刘润年度演讲:进化的力量关键词
  18. Linux文件上传下载,rz和sz
  19. 2021年全球区块链产业重要投资和发展领域
  20. 【主观感受】无处不在的广告和垃圾软件,“百度一下,你就上当了”

热门文章

  1. 你知道哪些常用快捷键?电脑快捷键大全,打工人必备!
  2. [译] 充分利用多摄像头 API,写的太详细了
  3. 用计算机能开通余利宝吗,余利宝在哪里打开 普通用户怎么开通余利宝?
  4. 防静电手环在计算机中的功能,什么是防静电手环
  5. Using default tag: latest The push refers to repository
  6. 软文类型|软文按营销目的可划分为这几类
  7. 亚马逊代运营都包含哪些服务
  8. Andorid Studio 制作欢乐写数字(Timer启动+帧动画)
  9. Java 并发编程实践 读书笔记四
  10. opp原则_面向过程编程(OPP) 和面向对象编程(OOP)的关系