在春天mvc禁用招摇

Pul*_*kit 3 java spring spring-mvc swagger swagger-2.0

我是Swagger的新手,并且已经使用spring mvc实现了Swagger UI,我想在生产/现场环境中禁用UI.我正在努力解决这个问题.

这就是我正在使用的

SwaggerConfig.java

@Configuration
@EnableSwagger2
public class SwaggerConfig {


}
Run Code Online (Sandbox Code Playgroud)

RestController.java

    @RestController
    @Api(value="city", description="Operations pertaining to City Data")
    @RequestMapping(value="/v1/city")
    public class RestController {

    @ApiOperation(value = "View city by stateId or stateName")
        @RequestMapping(value="/search",method=RequestMethod.POST)
        public ResponseEntity<Object> getCityBystateId(@RequestBody StateDto stateDto,Model model){
        }
}
Run Code Online (Sandbox Code Playgroud)

Mas*_*ave 7

查看Spring的配置文件机制,它允许您在不同的环境中注册不同的bean

当你根据doc引导它时,你可以在类级别注释你的swagger配置类,例如@Profile("dev"),从而为你选择的环境启用swagger配置

@Configuration
@EnableSwagger2
@Profile("dev")
public class SwaggerConfig {


}
Run Code Online (Sandbox Code Playgroud)


Nel*_* G. 5

另一种方法是使用反向代理拒绝在生产环境中访问Swagger Api.

在这种情况下,您的生产安装与开发/测试环境完全相同(然后更符合DevOps方法),您可以继续使用内部调用访问Swagger API.