我是靠谱客的博主 平常钢笔,最近开发中收集的这篇文章主要介绍自定义类型转换器——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 的方式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部