You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过注解将SpringDoc OpenAPI Swagger默认协议从HTTP改HTTPS?

解决方案:通过注解强制Swagger使用HTTPS协议

核心思路

springdoc-openapi支持通过@OpenAPIDefinition结合@Server注解直接指定Swagger UI使用的协议与服务器地址,无需修改JSON/YAML配置文件,完全满足你基于注解实现协议转换的需求。

具体实现步骤

1. 全局固定HTTPS配置

在Spring Boot主启动类或专门的配置类上添加@OpenAPIDefinition注解,嵌套@Server指定HTTPS服务器:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import io.swagger.v3.oas.annotations.OpenAPIDefinition;
import io.swagger.v3.oas.annotations.servers.Server;

@SpringBootApplication
@OpenAPIDefinition(
    servers = {
        @Server(url = "/", description = "HTTPS 服务器"),
        // 若需保留HTTP选项,可添加以下条目(可选)
        // @Server(url = "http://your-domain:8080", description = "HTTP 服务器")
    }
)
public class YourApplication {
    public static void main(String[] args) {
        SpringApplication.run(YourApplication.class, args);
    }
}

2. 多环境动态适配(可选)

如果应用在不同环境(开发/测试/生产)使用不同协议,可通过Spring的@Value注入动态配置@Server的地址:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import io.swagger.v3.oas.annotations.OpenAPIDefinition;
import io.swagger.v3.oas.annotations.servers.Server;

@SpringBootApplication
@OpenAPIDefinition(
    servers = {
        @Server(url = "${springdoc.server.url:/}", description = "当前环境服务器")
    }
)
public class YourApplication {
    @Value("${springdoc.server.url:/}")
    private String serverUrl;

    public static void main(String[] args) {
        SpringApplication.run(YourApplication.class, args);
    }
}

然后在对应环境的配置文件中设置地址:

# 生产环境
springdoc.server.url=https://your-production-domain.com
# 开发环境(可选)
# springdoc.server.url=http://localhost:8080

验证效果

启动应用后访问Swagger UI(默认地址为https://your-domain/swagger-ui.html),可看到顶部服务器地址已切换为HTTPS,接口测试时会自动使用HTTPS协议发送请求。

补充说明

  • 该方案完全基于注解实现,无需编写任何OpenAPI的JSON/YAML配置文件。
  • springdoc-openapi-ui 1.6.9版本完全兼容@OpenAPIDefinition与@Server注解,无需升级依赖。

内容的提问来源于stack exchange,提问作者sonic boom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 13:16:16