● knife4j是一个集 Swagger2和PoenApi为一体的增强解决方案
- 导入依赖
| <dependency> |
| <groupId>com.github.xiaoymin</groupId> |
| <artifactId>knife4j-spring-boot-starter</artifactId> |
| <version>3.0.3</version> |
| </dependency> |
- 编写相关配置类
| package com.feiyu.common.config; |
| |
| |
| import org.springframework.context.annotation.Bean; |
| import org.springframework.context.annotation.Configuration; |
| import springfox.documentation.builders.ApiInfoBuilder; |
| import springfox.documentation.builders.ParameterBuilder; |
| import springfox.documentation.builders.PathSelectors; |
| import springfox.documentation.builders.RequestHandlerSelectors; |
| import springfox.documentation.schema.ModelRef; |
| import springfox.documentation.service.ApiInfo; |
| import springfox.documentation.service.Contact; |
| import springfox.documentation.service.Parameter; |
| import springfox.documentation.spi.DocumentationType; |
| import springfox.documentation.spring.web.plugins.Docket; |
| import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc; |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| @Configuration |
| @EnableSwagger2WebMvc |
| public class Knife4jConfig { |
| |
| @Bean |
| public Docket adminApiConfig(){ |
| List<Parameter> pars = new ArrayList<>(); |
| ParameterBuilder tokenPar = new ParameterBuilder(); |
| tokenPar.name("token") |
| .description("用户token") |
| .defaultValue("") |
| .modelRef(new ModelRef("string")) |
| .parameterType("header") |
| .required(false) |
| .build(); |
| pars.add(tokenPar.build()); |
| |
| |
| Docket adminApi = new Docket(DocumentationType.SWAGGER_2) |
| .groupName("adminApi") |
| .apiInfo(adminApiInfo()) |
| .select() |
| |
| .apis(RequestHandlerSelectors.basePackage("com.feiyu")) |
| .paths(PathSelectors.regex("/admin/.*")) |
| .build() |
| .globalOperationParameters(pars); |
| return adminApi; |
| } |
| |
| private ApiInfo adminApiInfo(){ |
| |
| return new ApiInfoBuilder() |
| .title("后台管理系统-API文档") |
| .description("本文档描述了后台管理系统微服务接口定义") |
| .version("1.0") |
| .contact(new Contact("keyu", "http://www.fkclass.top", "3111688230@qq.com")) |
| .build(); |
| } |
| |
| |
| } |
- Controller层添加注解
a. 方便查看
| package com.feiyu.auth.controller; |
| |
| import com.feiyu.auth.service.SysRoleService; |
| import com.feiyu.model.system.SysRole; |
| import com.feiyu.result.Result; |
| import io.swagger.annotations.Api; |
| import io.swagger.annotations.ApiOperation; |
| import org.springframework.beans.factory.annotation.Autowired; |
| import org.springframework.web.bind.annotation.GetMapping; |
| import org.springframework.web.bind.annotation.RequestMapping; |
| import org.springframework.web.bind.annotation.RestController; |
| |
| import java.util.List; |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| @Api("角色管理") |
| @RestController |
| @RequestMapping("/admin/system/stsRole") |
| public class SysRoleController { |
| @Autowired |
| private SysRoleService sysRoleService; |
| |
| @ApiOperation("查询所有角色") |
| @GetMapping("/findAll") |
| public Result findAll(){ |
| List<SysRole> list = sysRoleService.list(); |
| return Result.success(list); |
| } |
| } |
- 测试
浏览器访问:http://localhost:8081/doc.html

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)