gpt4 book ai didi

spring-boot - 带有自定义转换器的 Spring Boot 打破了 Swagger 以及如何移动它

转载 作者:行者123 更新时间:2023-12-01 01:59:06 25 4
gpt4 key购买 nike

我有一个非常简单的 Spring Boot 应用程序。我通过基本的 SpringApplication.run(Startup.class, args); 启动它并有一个自定义 @Configuration那里的类​​覆盖默认转换器。我决定加Swagger混合的东西,以便我可以为我们的内部用户群生成更好的文档,因为有很多端点。

当我开始工作时,Swagger 根本无法工作。

我决定开始一个从头开始的 Spring Boot,只有一个端点来记录,看看出了什么问题。 开箱即用,效果很好 我可以通过点击 http://localhost:8080/swagger-ui.html 来运行 Swagger基本网址。

当我实现我的自定义时 @Configuration扩展的类 WebMvcConfigurationSupport ,Swagger 不再起作用。

我的配置覆盖了一个方法:

@Configuration
public class StartupConfiguration extends WebMvcConfigurationSupport {

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(getJsonConverter());
}
}

就是这样。我决定添加默认转换器也没有任何运气。然后我只是清空了类(class)并将其保留为:
@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/");
}

关于spring-boot - 带有自定义转换器的 Spring Boot 打破了 Swagger 以及如何移动它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38020044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com