簡體   English   中英

@RequestParam的Spring轉換器

[英]Spring Converters for @RequestParam

我想在我的控制器中使用表單字段的InputStream,而@RequestParam是String還是MultipartFile。 有誰知道如何正確注冊轉換器。 我想要達到的目標是這樣的

@RequestMapping(value = "/test", method = RequestMethod.POST)
void sendData(@RequestParam("data") InputStream){
   // Deal with InputStream
}

我已經編寫了兩個轉換器,但是我不確定如何在spring boot中注冊它們並強制它們工作:

public class StringToStreamConverter implements Converter<String, InputStream> {

   @Override
   public InputStream convert(String source) {
     return new ByteArrayInputStream(source.getBytes());
   }
}


public class MultipartFileToStreamConverter 
   implements Converter<MultipartFile, InputStream> {

   @Override
   public InputStream convert(MultipartFile source) {
     return source.getInputStream();
   }
}

我找到了解決方案。

如果配置類擴展了WebMvcConfigurationSupport我可以覆蓋方法public FormattingConversionService mvcConversionService() ,在其中可以添加我的轉換器,並且它可以正常工作。

@Configuration
public class TestConfig extends WebMvcConfigurationSupport {
   @Override
   public FormattingConversionService mvcConversionService() {
       FormattingConversionService f = super.mvcConversionService();
       f.addConverter(new StringToStreamConverter());
       f.addConverter(new MultipartFileToStreamConverter());
       return f;
   }
}

我想知道是否有人有更好的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM