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
我正在使用 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