springdoc-openapi-ui 整合 knife,多模块分组,脚手架

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.7.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>2023_demo</name>
    <description>2023_demo</description>

    <properties>
        <java.version>11</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-ui</artifactId>
            <version>1.6.11</version>
        </dependency>
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-springdoc-ui</artifactId>
            <version>3.0.3</version>
        </dependency>


    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>aliyun-repo</id>
            <name>aliyun</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </repository>
    </repositories>

</project>

yum文件:

java 复制代码
server:
  port: 18080

springdoc:
  swagger-ui:
    enabled: true # 开关
    doc-expansion: none  #关闭展开
  api-docs:
    enabled: true # 开关

swagger配置文件

java 复制代码
package com.example.demo.config;

import io.swagger.v3.oas.annotations.OpenAPIDefinition;
import io.swagger.v3.oas.annotations.info.Info;
import io.swagger.v3.oas.models.parameters.Parameter;
import org.springdoc.core.GroupedOpenApi;
import org.springdoc.core.customizers.OperationCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @description
 
 * @author 
 * @since 2023/8/31
 */
@Configuration
@OpenAPIDefinition(info = @Info(title = "springDoc + knife 集成测试", version = "1.0",
        description = "swagger基础项目脚手架")
)
public class SwaggerConfig {

    @Bean
    public GroupedOpenApi usercApi() {
        return GroupedOpenApi.builder()
                .group("用户管理")
                .packagesToScan("com.example.demo.system")
                .pathsToMatch("/**")
                .build();
    }

    @Bean
    public GroupedOpenApi biApi(OperationCustomizer operationCustomizer) {
        return GroupedOpenApi.builder()
                .group("报表管理")
                .packagesToScan("com.example.demo.bi")
                .pathsToMatch("/**")
                .addOperationCustomizer(operationCustomizer)
                .build();
    }

    @Bean
    public OperationCustomizer operationCustomizer() {
        return (operation, handlerMethod) -> operation.addParametersItem(
                new Parameter()
                        .in("header")
                        .required(true)
                        .description("token 验证")
                        .name("token"));
    }

//    @Bean
//    public OpenApiCustomiser customerGlobalHeaderOpenApiCustomise() {
//        Parameter passwordParameter = new Parameter().name("password").description("密码").in(ParameterIn.QUERY.toString()).schema(new Schema<>().type("string"));
//        Parameter usernameParameter = new Parameter().name("username").description("用户名").in(ParameterIn.QUERY.toString()).schema(new Schema<>().type("string"));
//        ApiResponse apiResponse = new ApiResponse().content(new Content().addMediaType("*/*", new MediaType()));
//        PathItem pathItem = new PathItem().post(new Operation().summary("登录").tags(CollUtil.newArrayList("system/auth")).description("系统管理/鉴权接口").responses(new ApiResponses()
//                        .addApiResponse("default", apiResponse))
//                .parameters(CollUtil.newArrayList(usernameParameter, passwordParameter)));
//        return openApi -> openApi.path("/auth/login", pathItem);
//
//    }
}

访问swagger-ui:

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

相关推荐
lkbhua莱克瓦241 小时前
Zoggin 个人词汇认知实验室 — 业务需求文档(BRD V3.0)液态玻璃 UI × CEP 记忆引擎 × 认知增强飞轮
ui
jf加菲猫2 小时前
第15章 文件和目录
开发语言·c++·qt·ui
ZC跨境爬虫4 小时前
UI前端美化技能提升日志day8:(Watch专区字体优化+尺寸校准+视觉重构+结构分层)
前端·ui·重构·html
早起傻一天~G6 小时前
vue2+element-UI表单封装
前端·vue.js·ui
报错小能手7 小时前
Swift UI 用 MVVM 架构 Combine EventBus 实现待办清单
开发语言·ui·swift
EaseUI17 小时前
【Ease UI】2026-04-24 项目更新:增加多种风格登录页,增加菜单风格切换
ui
ZC跨境爬虫1 天前
UI前端美化技能提升日志day7:(原生苹方字体全局适配+合规页脚完整像素级落地)
前端·javascript·ui·html·交互
Ulyanov1 天前
《PySide6 GUI开发指南:QML核心与实践》 第十篇:综合实战——构建完整的跨平台个人管理应用
开发语言·python·qt·ui·交互·qml·雷达电子战系统仿真
Aotman_1 天前
Element UI 表格搜索高亮
前端·javascript·vue.js·ui·elementui
久爱物联网1 天前
【WinForm UI控件系列】散点图/折线图控件 (支持数值型、时间型、字符串型)
ui·winformui控件·c#控件ui·桌面应用ui控件·gdi绘制控件·散点图曲线图控件·时间型曲线图