我有一个非常简单的Spring Boot应用程序。我通过基本启动它,SpringApplication.run(Startup.class, args);
并@Configuration
在其中有一个覆盖默认转换器的自定义类。我决定将Swagger添加到所有功能中,以便在存在大量端点的情况下为内部用户群生成更好的文档。
当我开始工作时,Swagger根本无法工作。
我决定用一个端点启动一个从头开始的Spring Boot,以记录问题出在哪里。开箱即用的效果很好,我只需点击http:// localhost:8080 / swagger-ui.html基本URL就能使Swagger运行。
当我实现@Configuration
扩展的自定义类时WebMvcConfigurationSupport
,Swagger不再起作用。
我的配置覆盖了一个方法:
@Configuration
public class StartupConfiguration extends WebMvcConfigurationSupport {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(getJsonConverter());
}
}
而已。我决定也添加默认转换器,但没有任何运气。然后,我清空了课程,将其保留为:
@Configuration
public class StartupConfiguration extends WebMvcConfigurationSupport {
}
Swagger仍然不起作用-如果我完全删除该类,则它可以工作。
如何保留我的自定义配置数据并运行Swagger?我也希望将其移动到类似http:// localhost:8080 / swagger /的位置,而不是它使用的默认文件,但这是目前完全独立的问题。
我发布的Swagger如下所示:
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
@Bean
public Docket getDocket() {
// ...
return new Docket(DocumentationType.SWAGGER_2)
.groupName("Core API")
.apiInfo(infoBuilder.build())
.select().paths(PathSelectors.regex("/*"))
.build();
}
}
覆盖默认资源处理程序对我有用。我将以下内容添加到扩展WebMvcConfigurationSupport的配置类中:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry
.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry
.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句