gpt4 book ai didi

java - @RequestParam 的 Spring 转换器

转载 作者:行者123 更新时间:2023-12-01 13:15:21 28 4
gpt4 key购买 nike

我想在我的 Controller 中拥有表单字段的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;
}
}

不知道有没有人有更好的解决方案。

关于java - @RequestParam 的 Spring 转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22517429/

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