springBoot允许用户自定义转换器,以处理自定义请求参数协议。
方式一:通过实现接口:WebMvcConfigurer 并重写方法的形式。
@Configuration
public class BootConfig implements WebMvcConfigurer {
/**
* 自定义参数转换
*/
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new Converter<String, Integer>() {
@Override
public Integer convert(String source) {
return null;
}
});
}
}
方式二:向容器中注入bean形式:
@Bean public WebMvcConfigurer webMvcConfigurer() { return new WebMvcConfigurer() { /** * 添加自定义格式化器或转换器 * * @param registry */ @Override public void addFormatters(FormatterRegistry registry) { //Converter<S, T> S源类型,T目标类型 registry.addConverter(new MyConverter()); } }; }
Converter 转换器接口:
@FunctionalInterface public interface Converter<S, T> { /** * 自定义转换逻辑,S源参数类型,T目标参数类型 */ @Nullable T convert(S source); }