千家信息网

SpringBoot学习(三)—— springboot快速整合swagger文档

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,@[toc]简介优点后端根据swagger语法,自动生成漂亮规范的接口文档。做交互测试。劣势侵入式的,影响程序运行,尤其是传参的时候。注意swagger 分1.2版本和2.0版本,差异较大。swagg
千家信息网最后更新 2025年12月02日SpringBoot学习(三)—— springboot快速整合swagger文档

@[toc]

简介

优点

后端根据swagger语法,自动生成漂亮规范的接口文档。

做交互测试。

劣势

侵入式的,影响程序运行,尤其是传参的时候。

注意

swagger 分1.2版本和2.0版本,差异较大。swagger1.2 即 swagger-ui ; swagger2.0 即 springfox-swagger 。本文介绍的使用方式是新的版本,即 springfox-swagger 。

发布生产,关闭swagger,以防泄漏项目接口文档,被***

引入swagger组件

pom.xml中加入

    io.springfox    springfox-swagger2    2.9.2    io.springfox    springfox-swagger-ui    2.9.2

代码实战

我看很多博主说swagger的配置代码要和项目启动文件在同级目录,即如下

但是,移入config目录下,经过测试,也是正常的,那这样就看个人习惯了。

DemoApplication.java

package com.example;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.ApiInfoBuilder;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 注解,让 Spring 来加载该类配置。//再通过 @EnableSwagger2 注解来启用 Swagger2。@Configuration@EnableSwagger2public class DemoSwagger {    @Bean    public Docket api() {        return new Docket(DocumentationType.SWAGGER_2)                .apiInfo(apiInfo())                .select()                // 指定要扫描的包路径             .apis(RequestHandlerSelectors.basePackage("com.example.controller"))                .paths(PathSelectors.any())                .build();    }    private ApiInfo apiInfo() {        return new ApiInfoBuilder()                .title("项目api文档")                .description("swagger接入教程")                .version("1.0")                .build();    }}

因为之前已经配置好了spring security,所以浏览器网址中输入 http://localhost:8080/swagger-ui.html 后,会被拦截住,输入之前配置好的用户密码后,效果如下所示;

因为之前测试用户登录,用户权限,所以controller里面已经有了一些接口方法,但是就让它这样默认,显然用户体验不好,所以在之前的userController里继续加上swagger的注解。

@Api:用在类上,说明该类的作用。@ApiOperation:说明该方法的作用。

具体而更细致的注解参见官方文档 常用注解说明 。

UserController.java

package com.example.controller;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.ResponseBody;@Controller@RequestMapping("user")@Api(value = "用户模块说明", description = "提供用户的增、删、改、查")public class UserController {    @RequestMapping(value = "/addUser", method = RequestMethod.GET)    @ResponseBody    @ApiOperation(value = "添加用户", notes = "放一些信息,供测试判断")    String addUser() {        return "这是添加用户!!!";    }    @RequestMapping(value = "/deleteUser", method = RequestMethod.POST)    @ResponseBody    @ApiOperation(value = "删除用户", notes = "放一些信息,供测试判断")    String deleteUser() {        return "这是删除用户!!!";    }    @RequestMapping("/updateUser")    @ResponseBody    @ApiOperation(value = "修改用户", notes = "放一些信息,供测试判断")    String updateUser() {        return "这是修改用户!!!";    }    @RequestMapping(value = "/findAllUsers", method = RequestMethod.PUT)    @ResponseBody    @ApiOperation(value = "查询用户", notes = "放一些信息,供测试判断")    String findAllUsers() {        return "这是查询用户!!!";    }}

效果图如下


具体打开某一条,如下

很明显,有了中文注释,文档可读性更强。

要说明的是,平时写 @RequestMapping 注解的时候,我通常会简写,如上demo中的修改用户方法。但是swagger是侵入式的,如果未指定 RequestMethod 类型,就会把一大堆都列出来,如GET,HEAD,POST,PUT,DELETE,OPTIONS,PATCH ,而其他指定好的,则是一条。

用户 测试 注解 文档 信息 这是 配置 接口 方法 版本 项目 代码 作用 效果 时候 目录 查询 输入 明显 细致 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 sql数据库期末设计大作业代码 我国国家网络安全应急工作由统一 苏州软件开发薪资水平 php连接mdb数据库 长春智能网络技术诚信服务 国际网络安全企业50强 机械手服务器报警代码大全 网易邮箱请确认服务器配置 望远县软件开发定制价格表 手机uu服务器数据怎么看 gpu服务器凭租 软件开发版硬件 数据库滚动文字方向 第六届网络安全宣传周视频 怎样找回电脑丢失数据库 计算机信息技术对网络安全 t3系统不能登录到服务器怎么办 怀柔软件开发商 互联网 科技股份有限公司 南京商邻互联网科技有限公司 新时代网络安全运营方案 江苏多赢互联网科技有限公司 郑州应用软件开发价钱是多少 上海永投网络技术股份有限公司 苹果id服务器验证失败有影响吗 车载大屏怎么放歌就出服务器错误 高校校园网络安全工作 我的世界服务器地形名称 公安部关于网络安全防控的意见 软件开发价格测算
0