Spring Boot3整合knife4j(swagger3)

这篇具有很好参考价值的文章主要介绍了Spring Boot3整合knife4j(swagger3)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.前置条件

2.导依赖

3.配置


1.前置条件

已经初始化好一个spring boot项目且版本为3X,项目可正常启动。

作者版本为3.2.2

初始化教程:

新版idea创建spring boot项目-CSDN博客https://blog.csdn.net/qq_62262918/article/details/135785412?spm=1001.2014.3001.5501

2.导依赖

knife4j官网:

Knife4j · 集Swagger2及OpenAPI3为一体的增强解决方案. | Knife4j (xiaominfo.com)https://doc.xiaominfo.com/依赖选择:

Spring Boot3整合knife4j(swagger3),java后端,spring boot,java,后端,spring作者的使用的spring boot 3.2.2为当前最新版,所以依赖导入最新的knife4j 4.4.0

pom.xml:

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

3.配置

官方文档(快速开始):

快速开始 | Knife4j (xiaominfo.com)https://doc.xiaominfo.com/docs/quick-start

官方文档(详细配置):

3.1 增强模式 | Knife4j (xiaominfo.com)https://doc.xiaominfo.com/docs/features/enhance

application.yml:

springdoc:
  swagger-ui:
    path: /swagger-ui.html
    tags-sorter: alpha
    operations-sorter: alpha
  api-docs:
    path: /v3/api-docs
  group-configs:
    - group: '蒾酒'
      paths-to-match: '/**'
      #生成文档所需的扫包路径,一般为启动类目录
      packages-to-scan: com.mijiu


#knife4j配置
knife4j:
  #是否启用增强设置
  enable: true
  #开启生产环境屏蔽
  production: false
  #是否启用登录认证
  basic:
    enable: true
    username: admin
    password: 123456
  setting:
    language: zh_cn
    enable-version: true
    enable-swagger-models: true
    swagger-model-name: 用户模块

写个接口:

@Tag注解:标记接口类别

@Operation:标记接口操作

@RestController
@Tag(name = "用户接口")
@RequestMapping("/user")

public class UserController {
    private final UserService userService;

    public UserController(UserService userService) {
        this.userService = userService;
    }

    @GetMapping("/list")
    @Operation(summary = "用户列表")
    public List<User> test(){
        return userService.list();
    }

    @Operation(summary = "你好")
    @GetMapping("/hello")
    public Object test2(){
        return "hello";
    }
}

启动项目:

浏览器输入:http://ip:port/doc.html

Spring Boot3整合knife4j(swagger3),java后端,spring boot,java,后端,spring

Spring Boot3整合knife4j(swagger3),java后端,spring boot,java,后端,spring

接口已经识别到了

接下来配置以下接口文档的作者等信息

在config目录下新建配置类:

Spring Boot3整合knife4j(swagger3),java后端,spring boot,java,后端,spring

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author mijiupro
 */
@Configuration
public class Knife4jConfig {
    @Bean
    public OpenAPI springShopOpenApi() {
        return new OpenAPI()
                // 接口文档标题
                .info(new Info().title("蒾酒的demo")
                        // 接口文档简介
                        .description("这是基于Knife4j OpenApi3的测试接口文档")
                        // 接口文档版本
                        .version("1.0版本")
                        // 开发者联系方式
                        .contact(new Contact().name("蒾酒")
                                .email("000000000@qq.com")));
        
    }

}

重启项目,再次访问

Spring Boot3整合knife4j(swagger3),java后端,spring boot,java,后端,spring

每次都要打开浏览器输入地址访问不友好

启动类上优化:

@SpringBootApplication
@MapperScan("com.mijiu.mapper")
@Slf4j
public class SpringbootTemplateApplication {
    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(SpringbootTemplateApplication.class);
        Environment env = app.run(args).getEnvironment();
        app.setBannerMode(Banner.Mode.CONSOLE);
        logApplicationStartup(env);

    }
    private static void logApplicationStartup(Environment env) {
        String protocol = "http";
        if (env.getProperty("server.ssl.key-store") != null) {
            protocol = "https";
        }
        String serverPort = env.getProperty("server.port");
        String contextPath = env.getProperty("server.servlet.context-path");
        if (StringUtils.isBlank(contextPath)) {
            contextPath = "/doc.html";
        } else {
            contextPath = contextPath + "/doc.html";
        }
        String hostAddress = "localhost";
        try {
            hostAddress = InetAddress.getLocalHost().getHostAddress();
        } catch (UnknownHostException e) {
            log.warn("The host name could not be determined, using `localhost` as fallback");
        }
        log.info("""

                        ----------------------------------------------------------
                        \t应用程序“{}”正在运行中......
                        \t接口文档访问 URL:
                        \t本地: \t\t{}://localhost:{}{}
                        \t外部: \t{}://{}:{}{}
                        \t配置文件: \t{}
                        ----------------------------------------------------------""",
                env.getProperty("spring.application.name"),
                protocol,
                serverPort,
                contextPath,
                protocol,
                hostAddress,
                serverPort,
                contextPath,
                env.getActiveProfiles());
    }

}

效果如图:

Spring Boot3整合knife4j(swagger3),java后端,spring boot,java,后端,spring

点击直接跳转。

完成!文章来源地址https://www.toymoban.com/news/detail-818261.html

到了这里,关于Spring Boot3整合knife4j(swagger3)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot 整合knife4j

    Knife4j是一款基于Swagger 2的在线API文档框架 添加依赖 创建 Swagger 配置依赖 application.yml配置文件 响应参数 tips: http://127.0.0.1:8080/doc.html 这里端口,就是你运行项目的端口 springboot 中 knife4j的完整参数如下: 接口添加作者 添加作者有俩种方式 在方法上使用注解 @ApiOperationSupport

    2024年02月14日
    浏览(30)
  • SpringBoot整合Knife4j

    ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉🍎个人主页:Leo的博客💞当前专栏: 循序渐进学SpringBoot ✨特色专栏: MySQL学习 🥭本文内容:SpringBoot整合Knife4j 📚个人知识库: Leo知识库,欢迎大家访问

    2024年04月11日
    浏览(21)
  • Spring Cloud Gateway集成聚合型Spring Boot API发布组件knife4j,增强Swagger

    大家都知道,在前后端分离开发的时代,前后端接口对接是一项必不可少的工作。 可是, 作 为后端开发,怎么和前端更好的配合,才能让自己不心累、脑累 ,直接扔给前端一个后端开放api接口文档或者页面,让前端不用看着难受,也不用前端老问你,来愉快的合作呢? 原

    2024年04月22日
    浏览(23)
  • Swagger + Knife4j 接口文档的整合

    Swagger 接口文档的整合: 引入依赖(Swagger 或 Knife4j)。 自定义 Swagger 配置类。 定义需要生成接口文档的代码位置(Controller)。 注意:线上环境不要把接口暴露出去!!!可以通过在 SwaggerConfig 配置文件开头加上 @Profile({“dev”, “test”}) 限定配置仅在部分环境开启。 启动

    2024年01月20日
    浏览(38)
  • 第十三章 SpringBoot整合knife4j

    🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 [Java项目实战] 介绍Java组件安装、使用;手写框架等 [Aws服务器实战] Aws Linux服务器上操作nginx、git、JDK、Vue等 [Java微服务

    2024年02月03日
    浏览(30)
  • springboot整合knife4j版本错误解决办法

    在springboot 2.xx的版本中整合knife4j出现如下错误解决办法: 如果 springboot version = 2.6,需要添加如下配置(yml文件中): spring: mvc: pathmatch: matching-strategy: ANT_PATH_MATCHER 第二种办法可以到官网快速开始 | Knife4j (xiaominfo.com) 下载最新的依赖 dependency groupIdcom.github.xiaoymin/groupId artifa

    2023年04月20日
    浏览(25)
  • springboot整合Knife4j--token头验证

    Knife4j其实就是增强版本的swagger,过多的介绍我就不说了,一搜一大把,直接开始吧哈哈 1.引入pom依赖 需要其他版本的可以去https://mvnrepository.com/  自己选择。 2.配置类 链式调用时api指定需要扫描的包,如果在配置加入@ConditionalOnProperty注解可以在yml文件配置用户名密码等等,

    2023年04月08日
    浏览(23)
  • SpringBoot整合knife4j(快速入门超详细版)

    😊 @ 作者: Eric 💖 @ 主页: https://blog.csdn.net/weixin_47316183?type=blog 🎉 @ 主题: SpringBoot整合knife4j(快速入门超详细版) ⏱️ @ 创作时间: 2023年08月01日 在日常开发中,写接口文档是我们必不可少的,而Knife4j就是一个接口文档工具,可以看作是Swagger的升级版,但是界面比S

    2024年02月10日
    浏览(26)
  • SpringBoot3中Swagger整合knife4j和springdoc的配置说明

      springboot3开始javax包改成了jakarta,而swagger-oas等包中依然使用的是javax所以报错。另外springfox已经过时了,两年没更新了,并且不支持OpenAPI3 标准,而SpringBoot3只支持OpenAPI3规范,所以要迁移到springdoc Knife4J是一款基于Swagger快速生成API文档和调试平台的开源工具,它可以轻松地

    2024年02月04日
    浏览(37)
  • 【swagger】spring security中 swagger和knife4j集成 无法访问 返回结果没有内容

    作为一个强迫症重度的程序猿 不想多导一个jar包 本文创作背景是鉴于网上大多数是旧版本swagger2的教程,且没有针对2和3区别描述,话不多说 直接步入正题。 如果只需要knife4j文档 导这 一个包 就够了 这里以3.0+版本举例 (对springboot比较熟悉的同学应该清楚 starter目的就是将其

    2024年02月06日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包