在添加了第二个配置和 @EnableWebMvc 后,Swagger 方法会列出两次。
在添加了第二个配置和 @EnableWebMvc 后,Swagger 方法会列出两次。
我有一个带有两个@Configuration类的RESTful Spring应用程序,我的swagger方法列出了两次。\n我有一个swagger配置\n
@Configuration @EnableSwagger // 加载框架所需的spring beans public class SwaggerConfig { private SpringSwaggerConfig springSwaggerConfig; @Autowired public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) { this.springSwaggerConfig = springSwaggerConfig; } @Bean public SwaggerSpringMvcPlugin customImplementation() { return new SwaggerSpringMvcPlugin(this.springSwaggerConfig) .apiInfo(apiInfo()) .includePatterns(".*myPattern.*") .useDefaultResponseMessages(false) .apiVersion("1.1.0"); } private ApiInfo apiInfo() { ApiInfo apiInfo = new ApiInfo("my Service REST API", null, null, null, null, null); return apiInfo; } }
\n为了解决这个问题:Get Request fails for .com email addresses because Spring interpretes it as a extensions,我有第二个配置:\n
@Configuration @EnableWebMvc public class RestCommonsMvcConfig extends WebMvcConfigurerAdapter { @Override public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { configurer.favorPathExtension(false); } }
\n但现在我的所有swagger方法都列出了两次。如果我删除@EnableWebMvc注释,它们将再次只列出一次,但该配置不再按预期工作(修复上述错误)。\n现在我该怎么办?\n
\n编辑\n我尝试直接从WebMvcConfigurationSupport扩展,但问题并未消失。\n
@Configuration public class MyConfiguration extends WebMvcConfigurationSupport { @Override public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { configurer.favorPathExtension(false); } }