SpringFox Boot 启动器:如何为生产配置文件禁用 swagger-ui?

SpringFox Boot starter: How to disable swagger-ui for production profile?

我正在使用 io.springfox springfox-boot-starter v 3.0.0,

根据文档,此 Spring 启动设置将禁用 prod 的 swagger 端点:

@Configuration
@Profile({"!prod && swagger"})
public class SwaggerConfig implements WebMvcConfigurer {

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .useDefaultResponseMessages(false)
                .select()
                .apis(RequestHandlerSelectors.any())
                .build()
                .apiInfo(apiInfo());
    }

...

在prod时,这里定义的swagger的customisations确实是少了,但是Swagger的UIendpoint还在那里。我怎样才能完全抑制 /swagger-ui/ 端点?有什么比 springfox.swagger-ui.enabled=false 属性 我可以在 spring 启动应用程序配置中设置的吗?

如果想彻底去除swagger相关的资源,可以考虑在编译期做。

如果您使用的是 Apache Maven,则很容易在 Maven 配置文件中控制依赖项和 运行时间配置,例如 swagger.

为生产构建时,运行以下命令。

mvn package -Pprod

// for dev stage.
mvn clean spring-boot:run -Pdev,swagger

My example有点老了,用Maven控制不同阶段的不同配置。

您可以禁用以下 属性

springfox.documentation.enabled=false