Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我是如何在Spring Boot项目的生产中禁用Swagger UI的_Java_Spring Boot_Swagger Ui_Springfox - Fatal编程技术网

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

Java 我是如何在Spring Boot项目的生产中禁用Swagger UI的,java,spring-boot,swagger-ui,springfox,Java,Spring Boot,Swagger Ui,Springfox,我有一个Spring Boot REST API应用程序,我集成了Swagger来编写文档,还使用它来测试带有Swagger UI的API 现在,我的任务是在生产环境(公共域)上禁用Swagger UI,并在私有IP上的开发环境中启用它。为了实现它,我在我的Swagger配置类和application.properties文件中做了下面提到的更改 我在pom.xml中添加了以下依赖项以集成swagger <dependency> <groupId>io.sprin

我有一个Spring Boot REST API应用程序,我集成了Swagger来编写文档,还使用它来测试带有Swagger UI的API


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

为了实现它,我在我的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-prod.properties文件中,我将该值更改为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;
    }
}
启用(Boolean.parseBoolean(environment.getProperty(“使用swagger”)) 此功能允许您在所需环境中启用或禁用招摇过市ui

为了执行SpringBootRESTAPI应用程序,我们使用了以下命令

在开发环境中-

nohup java -jar -Dspring.profiles.active=dev target/myapp-1.0.jar &
nohup java -jar -Dspring.profiles.active=prod target/myapp-1.0.jar &
在生产环境中-

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

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

@Profile({"local", "dev"})

使用Swagger vr-3.0.0,我们可以在相应的environment profile application.properties文件中添加springfox.documentation.enabled=false/true

类似于prod serverapplication-prod.properties文件

springfox.documentation.enabled=false 
springfox.documentation.enabled=true
对于dev serverapplication-dev.properties文件

springfox.documentation.enabled=false 
springfox.documentation.enabled=true
并通过在VM参数中指定配置文件来运行应用程序

-Dspring.profiles.active=prod/dev