Springboot集成knife4j (swagger)

news2024/10/5 6:52:51

1、添加依赖

在pom.xml 文件中添加 knife4j-spring-boot-starter 的依赖

<dependency>  
    <groupId>com.github.xiaoymin</groupId>  
    <artifactId>knife4j-spring-boot-starter</artifactId>  
    <version>3.0.3</version>  
</dependency>

2、配置

# application.yml  
knife4j:  
  enable: true # 开启Knife4j增强功能  
  base-package: com.xxx.xxx.controller # 设置需要扫描的包路径

3、使用Swagger注解

为实体类添加@ApiModel注解和ApiModelProperty注解
例如:

@ApiModel("用户实体类")
@Data
@TableName("employee")
public class Employee implements Serializable {

    @ApiModelProperty("用户Id")
    @TableField(value = "id", select = false)
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;

    @ApiModelProperty("用户名称")
    private String name;

    @ApiModelProperty("用户密码")
    private String password;

    @TableField(value = "create_time",fill = FieldFill.INSERT)
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private LocalDateTime createTime;

    @TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private LocalDateTime updateTime;
}

在 Controller 类和方法上使用 Swagger 的注解来描述 API

@Api(tags = "示例接口")  
@RestController  
@RequestMapping("/example")  
public class ExampleController {  
  
    @ApiOperation("获取示例数据")  
    @GetMapping("/data")  
    public String getData() {  
        return "示例数据";  
    }  
}

4、定义API文档的标题、描述、版本等信息

创建配置类 SwaggerConfig :

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfo(
                "你的API标题", // title
                "你的API描述", // description
                "1.0", // version
                "Terms of service", // termsOfServiceUrl
                "你的联系人名字", // contact
                "你的API许可证", // license
                "你的API许可证URL" // licenseUrl
        );
    }
}

5、启动并访问

启用springboot项目,在浏览器访问项目的/doc.html路径
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1564911.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

D-迷恋网游(遇到过的题,做个笔记)

我的代码&#xff1a; #include <iostream> using namespace std; int main() {int a, b, c; //a表示内向&#xff0c;b表示外向&#xff0c;c表示无所谓cin >> a >> b >> c; //读入数 if (b % 3 0 || 3-b % 3 < c) //如果外向的人能够3人组成…

大数据学习第十二天(mysql不会的查询1)

1、数据 /*创建部门表*/ CREATE TABLE dept( deptno INT PRIMARY KEY, dname VARCHAR(50) comment 部门名称, loc VARCHAR(50) comment 工作地点 ); /*创建雇员表*/ CREATE TABLE emp( empno INT PRIMARY KEY, ena…

C++语言学习(三)——内联函数、auto、for循环、nullptr

1. 内联函数 &#xff08;1&#xff09;概念 以inline修饰的函数叫做内联函数&#xff0c;编译时C编译器会在调用内联函数的地方展开&#xff0c;没有函数调 用建立栈帧的开销&#xff0c;内联函数提升程序运行的效率。 内联函数是一种编译器指令&#xff0c;用于告诉编译器…

操作系统—读者-写者问题及Peterson算法实现

文章目录 I.读者-写者问题1.读者-写者问题和分析2.读者—写者问题基本解法3.饥饿现象和解决方案总结 II.Peterson算法实现1.Peterson算法问题与分析(1).如何无锁访问临界区呢&#xff1f;(2).Peterson算法的基本逻辑(3).写对方/自己进程号的区别是&#xff1f; 2.只包含意向的解…

软考高级架构师:存储管理-磁盘管理概念和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

GD32F470_MPU-6050模块 三轴加速度 陀螺仪6DOF模块 有代码原理图 GY-521模块移植

2.13 MPU6050六轴传感器 MPU6050 是 InvenSense 公司推出的整合性 6 轴运动处理组件&#xff0c;其内部整合了 3 轴陀螺仪和 3 轴加速度传感器&#xff0c;并且含有一个IIC 接口&#xff0c; 可用于连接外部磁力传感器&#xff0c;并利用自带的数字运动处理器&#xff08;DMP: …

基于ssm的寝室管理系统(java项目+文档+源码)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的寝室管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 寝室管理系统设计的主要使用者分为…

参数传值机制

在 Java 中&#xff0c;方法的所有参数都是 “传值” 的 基本类型&#xff1a;数值的拷贝 引用类型&#xff1a;引用的拷贝 方法内部改变参数对象的状态&#xff08;修改某属性&#xff09;&#xff0c;改变将反映到原始对象上 因为方法内部和外部引用的是同一个对象 方法内部…

探索广告行业业务模型的创新与发展

标随着数字化时代的到来&#xff0c;广告行业正经历着前所未有的变革和发展。在这个充满挑战和机遇的时代&#xff0c;广告公司和从业者们正在探索各种创新的业务模型&#xff0c;以适应市场的变化并取得成功。本文将深入探讨广告行业的业务模型&#xff0c;探索创新与发展的路…

华为交换机配置指引(包含安全配置部分)以 S5735S-L48T4S-A1 配置为例

华为S5735S-L48T4S-A1 是一款千兆以太网交换机: 端口结构: 48个10/100/1000BASE-T以太网端口和4个千兆SFP光接口供电方式: 交流电源背板带宽: 432Gbps包转发率: 87/166Mpps机箱高度: 1U重量: 2.76kg(不含包材)功耗: 典型功耗为43.3W接口: 48个10/100/1000BASE-T以太网电接口…

Python-VBA编程500例-029(入门级)

连续字符段索引(Index of Consecutive Character Segments)在实际应用中具有多种场景。常见的应用场景有&#xff1a; 1、文本分析&#xff1a;在文本处理和分析中&#xff0c;连续字符段索引可以用于识别重复的字符序列或模式。这些模式可能对于理解文本的结构、风格或特定含…

详解人工智能(概念、发展、机遇与挑战)

前言 人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;是一门新兴的技术科学&#xff0c;是指通过模拟、延伸和扩展人类智能的理论、方法、技术和应用系统&#xff0c;以实现对人类认知、决策、规划、学习、交流、创造等智能行为的模拟、延伸和扩展…

Golang并发模型-Pipeline模型、Fan-in Fan-out模型

这段时间由于项目的需要&#xff0c;本人正在研究关于如何优雅的进行go的并发&#xff0c;以下是结合资料和视频的结果&#xff0c;文末会给出参考资料 Go语言的并发模型主要通过goroutine和channel实现&#xff0c;通过这个我们可以更有效地使用IO和CPU 这里我们围绕生成一个…

vtk实现多条曲线多条航迹轨迹用不同颜色区分不同曲线

vtk实现多条曲线多条航迹轨迹用不同颜色区分不同曲线 说明(废话)实现 说明(废话) 通过vtk9.2绘制多条三维曲线&#xff0c;让每条曲线不同颜色。 实现 以上只是测试效果 定义了一个Qvector m_colors&#xff0c;并在构造函数中赋值。 在箭头处调用&#xff0c;也就是上图最…

使用docker部署MongoDB数据库

最近由于工作需要搭建MongoDB数据库&#xff1a;将解析的车端采集的数据写入到数据库&#xff0c;由于MongoDB高可用、海量扩展、灵活数据的模型&#xff0c;因此选用MongoDB数据库&#xff1b;由于现公司只有服务器&#xff0c;因此考虑容器化部署MongoDB数据&#xff0c;特此…

clickhouse sql使用2

1、多条件选择 multiIf(cond_1, then_1, cond_2, then_2, …, else) select multiIf(true,0,1) 当第一条件不成立看第二条件判断 第一个参数条件参数&#xff0c;第二参数条件成立时走 2、clickhouse 在计算时候长出现NaN和Infinity异常处理 isNaN()和isInfinite()处理

数据结构栈和堆列

目录 栈&#xff1a; 栈的概念&#xff1a; 栈的实现&#xff1a; 栈接口的实现&#xff1a; 1.初始化栈&#xff1a; 2.入栈&#xff1a; 3.出栈&#xff1a; 4. 获取栈顶元素&#xff1a; 5.获取栈中有效数据的个数&#xff1a; 6.检测栈是否为空&#xff0c;如果为…

rocketmq管理工具rocketmq-console安装

rocketmq-console是一个图形化管理控制台&#xff0c;提供Broker集群状态查看&#xff0c;Topic管理&#xff0c;Producer、Consumer状态展示&#xff0c;消息查询等常用功能&#xff0c;这个功能在安装好RocketMQ后需要额外单独安装、运行。 中文文档地址&#xff1a;https:/…

基于模糊PID控制器的的无刷直流电机速度控制simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1无刷直流电机模型与速度控制 4.2 模糊PID控制器设计 5.完整工程文件 1.课题概述 基于模糊PID控制器的的无刷直流电机速度控制simulink建模与仿真。基于模糊PID控制器的无刷直流电机&#xff08;Brus…

量化交易入门(四十)什么是ASI指标,怎么用它炒股

一、什么是ASI指标 ASI指标全称为Accumulation Swing Index,即积累摆动指数。它是一种用于衡量市场供需关系强度的技术指标,由Welles Wilder开发。ASI指标结合了价格和成交量的变化,试图从动量的角度来衡量多空双方的力量对比。其计算公式如下: 计算价格的变化值:ΔP 今日收盘…