我是靠谱客的博主 平常钢笔,最近开发中收集的这篇文章主要介绍自定义类型转换器——springboot自定义convert先给个场景一、实现 WebMvcConfigurer 的方式二、@Bean 获取 WebMvcConfigurer 的方式,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
自定义类型转换器——springboot自定义convert
- 先给个场景
- 一、实现 WebMvcConfigurer 的方式
- 二、@Bean 获取 WebMvcConfigurer 的方式
先给个场景
有一个
Person
类,一个Pet
类
@Component
public class User {
private String name;
private int age;
private Pet pet;
/*
getset方法
.
.
.
*/
}
@Component
public class Pet {
private String name;
private int age;
/*
getset方法
.
.
.
*/
}
一个
controller
接口
@GetMapping("pet")
public Pet testConvert(User user) {
return user.getPet();
}
前端请求参数格式以逗号分割属性值(name和age):/pet?pet=petName,10
此时我们需要设计一个自定义的类型转换器供web绑定器使用并得到我们想要的pet的值
一、实现 WebMvcConfigurer 的方式
// 编写 config 配置类, 并实现 WebMvcConfigurer
@Configuration(proxyBeanMethods = false)
public class WebConfig implements WebMvcConfigurer {
// 利用 WebMvcConfigurer 自带的 addFormatters 方法获取 FormatterRegistry
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new Converter<String, Pet>() {
@Override
public Pet convert(String source) {
// 自定义规则
String[] split = source.split(",");
Pet pet = new Pet();
pet.setName(split[0]);
pet.setAge(Integer.parseInt(split[1]));
return pet;
}
});
}
}
二、@Bean 获取 WebMvcConfigurer 的方式
// @Bean WebMvcConfigurer
@Configuration(proxyBeanMethods = false)
public class WebConfig implements WebMvcConfigurer {
@Bean
public WebMvcConfigurer webMvcConfigurer() {
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new Converter<String, Pet>() {
@Override
public Pet convert(String source) {
String[] split = source.split(",");
Pet pet = new Pet();
pet.setName(split[0]);
pet.setAge(Integer.parseInt(split[1]));
return pet;
}
});
}
};
}
}
最后
以上就是平常钢笔为你收集整理的自定义类型转换器——springboot自定义convert先给个场景一、实现 WebMvcConfigurer 的方式二、@Bean 获取 WebMvcConfigurer 的方式的全部内容,希望文章能够帮你解决自定义类型转换器——springboot自定义convert先给个场景一、实现 WebMvcConfigurer 的方式二、@Bean 获取 WebMvcConfigurer 的方式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复