Java 在DropWizard中禁用Swagger捆绑包
我希望根据配置值在生产环境中禁用招摇过市功能/端点 我该怎么办 我认为实现这一点的最佳方法是,当DropWizard应用程序首次启动时,不要在执行initialize方法期间添加捆绑包 此解决方案的问题是无法访问从YAML/YML文件中的值填充的配置get方法。这些值在应用程序到达run方法时可用 下面是我在application类中的初始化方法Java 在DropWizard中禁用Swagger捆绑包,java,rest,swagger,dropwizard,Java,Rest,Swagger,Dropwizard,我希望根据配置值在生产环境中禁用招摇过市功能/端点 我该怎么办 我认为实现这一点的最佳方法是,当DropWizard应用程序首次启动时,不要在执行initialize方法期间添加捆绑包 此解决方案的问题是无法访问从YAML/YML文件中的值填充的配置get方法。这些值在应用程序到达run方法时可用 下面是我在application类中的初始化方法 @Override public void initialize(Bootstrap<Configuration> bootstrap)
@Override
public void initialize(Bootstrap<Configuration> bootstrap) {
LOGGER.debug("initialize");
bootstrap.setConfigurationSourceProvider(new SubstitutingSourceProvider(bootstrap.getConfigurationSourceProvider(),
new EnvironmentVariableSubstitutor(false)));
bootstrap.addBundle(new SwaggerBundle<Configuration>() {
@Override
protected SwaggerBundleConfiguration getSwaggerBundleConfiguration(Configuration configuration) {
return configuration.swaggerBundleConfiguration;
}
});
}
@覆盖
公共无效初始化(引导引导引导){
调试(“初始化”);
bootstrap.setConfigurationSourceProvider(新的替换资源提供程序)(bootstrap.getConfigurationSourceProvider(),
新的EnvironmentVariableSubstitutor(false));
addBundle(新的SwaggerBundle(){
@凌驾
受保护的SwaggerBundleConfiguration getSwaggerBundleConfiguration(配置){
返回配置.swaggerBundleConfiguration;
}
});
}
如果我需要进一步澄清,请让我知道
提前感谢。您可以在生产中设置一个环境变量,并使用它来决定是否包括SwaggerBundle。例如:
if (!"prod".equalsIgnoreCase(System.getenv("ENVIRONMENT"))) {
bootstrap.addBundle(new SwaggerBundle<Configuration>() { ... }
}
if(!“prod.equalsIgnoreCase(System.getenv(“环境”)){
addBundle(新的SwaggerBundle(){…}
}
当时我使用的是旧版本的DropWizard
更新后,出现了新方法,包括setIsEnabled()
这是为了解决这个问题而添加的
bootstrap.addBundle(new SwaggerBundle<Configuration>() {
@Override
protected SwaggerBundleConfiguration getSwaggerBundleConfiguration(Configuration configuration) {
if(!configuration.getSwaggerEnabled()){
configuration.swaggerBundleConfiguration.setIsEnabled(false);
}
return configuration.swaggerBundleConfiguration;
}
});
}
bootstrap.addBundle(新的SwaggerBundle(){
@凌驾
受保护的SwaggerBundleConfiguration getSwaggerBundleConfiguration(配置){
如果(!configuration.getSwaggerEnabled()){
configuration.swaggerBundleConfiguration.setIsEnabled(false);
}
返回配置.swaggerBundleConfiguration;
}
});
}
谢谢