[英]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.