添加 Swagger2 的 Maven 依赖

简介: 本文介绍如何在Spring Boot项目中集成Swagger2(2.2.2版本),通过添加Maven依赖、配置SwaggerConfig类,实现在线API文档生成功能,并提供访问路径与生产环境安全禁用建议。

为了在 Spring Boot 项目中使用 Swagger2 来生成和展示 API 文档,首先需要在项目的 pom.xml 文件中添加相应的依赖。这里我们选择 Swagger2 版本 2.2.2,因为它被证明是稳定且用户界面友好的版本。

<dependencies>
    <!-- Swagger2 核心库 -->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.2.2</version>
    </dependency>
    <!-- Swagger2 UI 界面库 -->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.2.2</version>
    </dependency>
</dependencies>

注意事项

  1. 版本选择:虽然可能存在更高版本的 Swagger2,但根据实际经验,2.2.2 版本在稳定性和用户体验方面表现良好,因此推荐使用该版本。
  2. 兼容性检查:确保所选版本与你的 Spring Boot 版本兼容。一般来说,Spring Boot 2.x 版本系列与 Swagger2 2.2.2 版本是兼容的。
  3. 更新 Maven 项目:添加完依赖后,记得刷新或更新你的 Maven 项目以下载这些依赖项。

创建 Swagger 配置类

接下来,在你的 Spring Boot 应用程序中创建一个配置类来启用 Swagger2 功能,并进行基本设置。

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
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                // 指定扫描的包路径,生成对应的API接口文档
                .apis(RequestHandlerSelectors.basePackage("com.example.controller"))
                .paths(PathSelectors.any())
                .build();
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Spring Boot 使用 Swagger2 构建 RESTful APIs")
                .description("更多 Spring Boot 相关文章请访问:https://spring.io/projects/spring-boot")
                .version("1.0")
                .build();
    }
}

关键点解释

  • @EnableSwagger2:启用 Swagger2 功能。
  • Docket:构建 Swagger 文档的核心对象,通过 .select() 方法指定要扫描的包路径。
  • ApiInfo:用于定义 API 文档的基本信息,如标题、描述和版本号等。

访问 Swagger UI

完成上述配置后,启动你的 Spring Boot 应用程序,并通过浏览器访问以下地址查看 Swagger UI 页面:

http://localhost:8080/swagger-ui.html

在这里,你可以看到所有已配置的 API 接口,并能够直接在页面上进行测试。


生产环境中的注意事项

在生产环境中,出于安全考虑,通常不希望暴露 Swagger UI。可以通过条件配置来禁用它:

@Bean
public Docket createRestApi() {
    boolean swaggerEnabled = Boolean.parseBoolean(System.getenv().getOrDefault("SWAGGER_ENABLED", "false"));
    return new Docket(DocumentationType.SWAGGER_2)
            .enable(swaggerEnabled) // 控制是否启用 Swagger
            ...
}

并在 application-prod.yml 中设置:

swagger:
  enabled: false

这样,在生产环境下 Swagger 将不会被启用,从而提高了安全性。

相关文章
|
1月前
|
人工智能
阿里云Qoder CN的Credits用完了怎么办?可以单独购买吗?
阿里云Qoder CN的Credits用完后可直接购买新套餐,支持个人(59元起/月)及团队/企业版。Credits按任务复杂度消耗(如Editor Ask约3-4点/次),每月重置不累计。阿里云Qoder CN官网:https://t.aliyun.com/U/hGZKNX
|
9月前
|
JSON 缓存 Java
Spring Boot集成 Swagger2 展现在线接口文档
Swagger是一款用于生成和管理API文档的工具,解决前后端分离架构中接口文档更新不及时的问题。通过集成Swagger2,可自动生成在线接口文档,支持实时查看与测试接口,提升开发效率。本文介绍其在Spring Boot中的配置与常用注解使用方法。
|
7月前
|
人工智能 JavaScript API
opencode 安装 -> 使用
OpenCode 是一款开源AI编程助手,支持智能代码生成与文件操作。需先安装Node.js(推荐v22),再通过scoop或npm全局安装。启动后可切换build/plan双模式,支持自定义API模型、多会话、对话导出与分享等功能。(239字)
9149 13
|
9月前
|
Java 大数据 Maven
Excel工具-HUTOOL-输出Excel
Hutool封装Excel写出功能,提供ExcelWriter与BigExcelWriter,支持数据、Map、Bean等写入,可自定义样式、多sheet、标题别名及流式输出,避免内存溢出,适用于导出与下载场景。
428 0
|
人工智能 运维 API
Dify 开发者必看:如何破解 MCP 集成与 Prompt 迭代难题?
Dify 是面向 AI 时代的开源大语言模型应用开发平台,GitHub Star 数超 10 万,为 LLMOps 领域增长最快项目之一。然而其在 MCP 协议集成、Prompt 敏捷调整及运维配置管理上存在短板。Nacos 3.0 作为阿里巴巴开源的注册配置中心,升级支持 MCP 动态管理、Prompt 实时变更与 Dify 环境变量托管,显著提升 Dify 应用的灵活性与运维效率。通过 Nacos,Dify 可动态发现 MCP 服务、按需路由调用,实现 Prompt 无感更新和配置白屏化运维,大幅降低 AI 应用开发门槛与复杂度。
1525 20
|
Java Maven Spring
SpringBoot配置跨模块扫描问题解决方案
在分布式项目中,使用Maven进行多模块开发时,某些模块(如xxx-common)没有启动类。如何将这些模块中的类注册为Spring管理的Bean对象?本文通过案例分析,介绍了两种解决方案:常规方案是通过`@SpringBootApplication(scanBasePackages)`指定扫描路径;推荐方案是保持各模块包结构一致(如com.xxx),利用SpringBoot默认扫描规则自动识别其他模块中的组件,简化配置。
2298 1
SpringBoot配置跨模块扫描问题解决方案
|
SQL 关系型数据库 MySQL
详解如何优雅实现先分组再组内排序取数据解决方案
本文介绍了在数据库查询中常见的业务需求:先对数据进行分组,然后在每组内按规则排序并取出特定记录。使用MySQL和Elasticsearch实现这一操作,并对比了不同方法的性能。具体包括: **MySQL实现**:通过窗口函数`ROW_NUMBER()`、子查询和JOIN关联查询三种方式实现分组排序取数据,并探讨了索引优化的效果。 **Elasticsearch实现**:利用`terms`聚合和`top_hits`聚合实现分组排序,适用于大规模数据场景。 推荐优先使用窗口函数,结合索引优化提升查询性能。对于小规模查询,可在应用层处理。 通过实例和性能对比,帮助读者选择最适合的实现方案。
832 16
详解如何优雅实现先分组再组内排序取数据解决方案
|
缓存 负载均衡 Java
c++写高性能的任务流线程池(万字详解!)
本文介绍了一种高性能的任务流线程池设计,涵盖多种优化机制。首先介绍了Work Steal机制,通过任务偷窃提高资源利用率。接着讨论了优先级任务,使不同优先级的任务得到合理调度。然后提出了缓存机制,通过环形缓存队列提升程序负载能力。Local Thread机制则通过预先创建线程减少创建和销毁线程的开销。Lock Free机制进一步减少了锁的竞争。容量动态调整机制根据任务负载动态调整线程数量。批量处理机制提高了任务处理效率。此外,还介绍了负载均衡、避免等待、预测优化、减少复制等策略。最后,任务组的设计便于管理和复用多任务。整体设计旨在提升线程池的性能和稳定性。
536 5
|
Dubbo IDE Java
dubbo学习二:下载Dubbo-Admin管理控制台,并分析在2.6.1及2.6.1以后版本的变化
这篇文章是关于如何下载和部署Dubbo管理控制台(dubbo-admin)的教程,并分析了2.6.1版本及以后版本的变化。
1505 0
dubbo学习二:下载Dubbo-Admin管理控制台,并分析在2.6.1及2.6.1以后版本的变化

热门文章

最新文章