亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果使用 WebMvcConfigurationSupport 添加轉換器

如果使用 WebMvcConfigurationSupport 添加轉換器

寶慕林4294392 2023-10-12 14:46:10
我有一個帶有 swagger 文件的 springboot 應用程序。我使用任何 swagger Maven 插件并且它可以工作。我的 pom.xml 文件:    <dependency>        <groupId>io.swagger.core.v3</groupId>        <artifactId>swagger-core</artifactId>        <version>2.0.9</version>    </dependency>    <dependency>        <groupId>io.swagger.core.v3</groupId>        <artifactId>swagger-annotations</artifactId>        <version>2.0.9</version>    </dependency>    <dependency>        <groupId>io.swagger</groupId>        <artifactId>swagger-annotations</artifactId>        <version>1.5.23</version>    </dependency>    <dependency>        <groupId>org.springdoc</groupId>        <artifactId>springdoc-openapi-ui</artifactId>        <version>1.1.45</version>    </dependency>我使用java enum:public enum TempReadingSource {  COLDROOM("coldroom"),    LOCAL("local"),    OVEN("oven");  private String value;  TempReadingSource(String value) {    this.value = value;  }  @Override  @JsonValue  public String toString() {    return String.valueOf(value);  }  @JsonCreator  public static TempReadingSource fromValue(String text) {    for (TempReadingSource b : TempReadingSource.values()) {      if (String.valueOf(b.value).equals(text)) {        return b;      }    }    return null;  }}我有這個錯誤:"Failed to convert value of type 'java.lang.String' to required type 'com.foo.TempReadingSource';所以我在 Springboot2 配置中添加了一個轉換器:@Configurationpublic class StrubConfig extends WebMvcConfigurationSupport {    @Override    public FormattingConversionService mvcConversionService() {        FormattingConversionService f = super.mvcConversionService();        f.addConverter(new TempReadingSourceConverter());        return f;    }}和:public class TempReadingSourceConverter implements Converter<String, TempReadingSource> {    @Override    public TempReadingSource convert(String source) {       try {          return TempReadingSource.fromValue(source);       } catch(Exception e) {          return null;       }    }}這Converter解決了我的 API(通過郵遞員)但現在swagger-ui找不到:
查看完整描述

1 回答

?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

解決方案是:


@Configuration

public class StrubConfig {


    @Autowired

    private FormattingConversionService conversionService;


    @PostConstruct

    public void registerCustomConverter() {

        conversionService.addConverter(new TempReadingSourceConverter());

    }


}



查看完整回答
反對 回復 2023-10-12
  • 1 回答
  • 0 關注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號