我已经见过关于如何禁用或启用swagger的不同方法(例如@Profile等),但是当您想使用swagger时,它们都没有用,您可以在运行的应用程序上完成后就启用和禁用它,而无需重新启动
答案 0 :(得分:0)
有多种方法可以解决此问题,但不能使用直接的弹簧摇臂配置。我会记点我可以为您考虑的一些选项/步骤,您可以尝试一下。
为摇摇欲坠的URI创建一个filterchain
,它将检查一个属性名swagger.enable
true/false
,从而转发或拒绝该请求。
要么公开发布端点以使用env.setProperty
更新此属性,要么将该属性保留在application.properties
中并创建重新加载功能。一些reference在这里重新加载。
从如下属性创建您的docket bean:
@Bean 公共Docket api(){ 返回新的Docket(DocumentationType.SWAGGER_2) .... .build()。enable(env.getProperty(“ swagger.enable”));; }
参考Option 1 : Step#2
基于触发器向Docket
bean的reinitialize添加逻辑,可以作为步骤#2端点的后续操作。
因此,您的一般URI将根据您所控制的此属性的当前状态工作,因此无需重新启动。