当前位置: 首页 > 知识库问答 >
问题:

我如何在Spring Boot项目的生产中禁用Swagger-UI

鲁成天
2023-03-14

我有一个SpringBootRESTAPI应用程序,我集成了Swagger作为文档,还用它用Swagger UI测试API。

现在,我的任务是在我们的生产环境(公共域)上禁用Swagger-UI,并在私有IP上的开发环境中启用它。

共有3个答案

屈博
2023-03-14

只需使用@Profile注释注释您的配置

@Profile({"local", "dev"})
殳越
2023-03-14

为了实现它,我在我的 Swagger 配置类和 application.properties 文件中进行了下面提到的更改。

我的pom.xml,我在其中添加了下面的依赖项来集成swagger。

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-boot-starter</artifactId>
    <version>3.0.0</version>
</dependency>

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>3.0.0</version>
</dependency>        

在我的application-ev中。属性文件,我添加了一个布尔值为true的键值对

use-swagger=true

在我的应用程序产品中。属性文件,我将值更改为false

use-swagger=false

现在,最后在我的SwaggerConfig类中,我使用了上面的键来启用/禁用Swagger UI

@Configuration
public class SwaggerConfig  implements EnvironmentAware {

    private Environment environment;

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.jkoder.example.controller"))
                .paths(PathSelectors.any())
                .build()
                .apiInfo(apiInfo())
                .enable(Boolean.parseBoolean(environment.getProperty("use-swagger")));
    }


    @Override
    public void setEnvironment(Environment environment) {
        this.environment = environment;
    }
}

enable(Boolean.parseBoolean(environment.getProperty(“use-swagger”))此函数允许您在所需的环境中启用或禁用swagger ui。

为了执行Spring Boot REST Api应用程序,我们使用了以下命令

在开发环境中-

nohup java -jar -Dspring.profiles.active=dev target/myapp-1.0.jar &

在生产环境中-

nohup java -jar -Dspring.profiles.active=prod target/myapp-1.0.jar &
楚茂实
2023-03-14

使用Swagger vr-3.0.0,我们可以在相应的环境配置文件application.properties文件中添加spring fox . documentation . enabled = false/true。

类似于prod服务器应用程序prod。属性文件

springfox.documentation.enabled=false 

对于开发服务器application-dev.properties文件

springfox.documentation.enabled=true

并通过在 VM 参数中指定配置文件来运行应用

-Dspring.profiles.active=prod/dev
 类似资料:
  • 我得到一个错误--“请指出一个有效的Swagger或OpenAPI版本字段。支持的版本字段是Swagger:”2.0“和那些与OpenAPI:3.0.n匹配的版本字段(例如,OpenAPI:3.0.0)。”当我将生成的json从/api-docs粘贴到editor.swagger.io时。我有一些观察。 > localhost:8080/v3/api-docs/yields-此json在edito

  • 如何禁用swing组合框中的项目?我将这些项添加为代码,因为在我的项目中,我们无法从设计中手动添加它们。我想禁用项目,例如如果从swing Month组合框中选择了April,则项目31也应禁用,并显示警告消息,因为四月有30天,而不是31天。 {

  • 我有一个,其中有8个项目,我想显示其中的所有项目,但在特定条件下,用户只能选择前两个项目,因此我编写了程序,如果条件为真,用户选择任何其他选项,则会显示一个消息框,显示然后自动选择默认值。到现在为止,一直都还不错。 但现在的问题是,用户无法通过查看的选项来判断他可以选择哪些选项,因此我想做的是,如果条件为真,那么除前两个选项之外的所有选项都应该被禁用(或灰显或其他),这样用户就可以判断出您无法选择

  • 有一个springboot项目想部署到阿里云上,需要简化部署流程,需要咨询几个问题: 1.生产上使用docker容器部署还是直接手动安装jdk,打jar包上传服务器? 2.使用宝塔部署安全可靠吗,是否可以简化部署,没使用过宝塔? 3.项目用到了MySQL和Redis,单独购买云数据库还是在运行springboot的服务器里自己安装MySQL和Redis服务? 4.项目是前后端分离的,是要单独再购买

  • 问题内容: 无论项目属性设置为什么,Eclipse的Google插件都会在 web.xml中 自动生成这些行。 有没有办法阻止插件这样做? 问题答案: 在项目属性的构建器下,如果您禁用了Google App Engine项目更改通知程序,则不会再修改web.xml。但是,由于对GAE环境不够敏锐,我无法确定禁用此构建器的副作用是什么。