spring mvc实现一个自定义Converter转换器

embedded/2024/9/25 17:17:16/

介绍

自定义转换器输入Spring MVC框架范畴,总体上输入Spring生态的一个特性,对Web开发起作用。

使用场景

在Spring Boot应用中,自定义转换器主要用于处理HTTP请求参数到Java对象的自动转换,或者Java对象到HTTP响应的序列化过程。这通常涉及到@RequestBody和@ResponseBody注解的使用,以及类型转换服务ConversionService。下面以一个实际工作场景为例,展示如何创建一个自定义转换器来处理将字符串转换为自定义日期格式的日期对象。

代码实例

创建转换器

java">@Data
@Builder
public class Emp {private String id;private String name;
}
java">/*** 自定义转换器,将字符串转换为Emp对象*/
public class StringToEmpConverter implements Converter<String, Emp> {@Overridepublic Emp convert(String source) {if(StrUtil.isNotBlank(source)){String[] empStrs = source.split(";");if(empStrs.length == 2){return Emp.builder().id(empStrs[0]).name(empStrs[1]).build();}}System.out.println("Emp转换失败: "+source);return Emp.builder().build();}
}

注册转换器

java">@Configuration
public class WebMvcConfig implements WebMvcConfigurer {@Overridepublic void addFormatters(FormatterRegistry registry) {registry.addConverter(new StringToEmpConverter());}
}

创建接口

java">@RequestMapping("/mvc")
@RestController
public class CustomConverterController {@GetMapping("/convertEmp")public String convert(@RequestParam("emp") Emp emp){return "Converted Emp: "+ emp;}
}

测试

浏览器输入:http://localhost:9000/mvc/convertEmp?emp=123;Jack

输出:Converted Emp: Emp(id=123, name=Jack)


http://www.ppmy.cn/embedded/55888.html

相关文章

重磅发布|WAIC 2024最新活动日程安排完整发布!

WAIC 2024 将于 7 月在上海世博中心和世博展览馆举行&#xff0c;论坛时间为 7 月 4 日至 6 日&#xff0c;展览时间为 7 月 4 日至 7 日。会议涵盖 AI 伦理治理、大模型、具身智能、投融资、教育人才等重点话题&#xff0c;体现 AI 向善等价值导向&#xff0c;9 位大奖得主和 …

Spring Cloud LoadBalancer基础入门与应用实践

官网地址&#xff1a;https://docs.spring.io/spring-cloud-commons/reference/spring-cloud-commons/loadbalancer.html 【1】概述 Spring Cloud LoadBalancer是由SpringCloud官方提供的一个开源的、简单易用的客户端负载均衡器&#xff0c;它包含在SpringCloud-commons中用…

【论文速读】| LLAMAFUZZ:大语言模型增强的灰盒模糊测试

本次分享论文&#xff1a;LLAMAFUZZ: Large Language Model Enhanced Greybox Fuzzing 基本信息 原文作者&#xff1a;Hongxiang Zhang, Yuyang Rong, Yifeng He, Hao Chen 作者单位&#xff1a;University of California, Davis 关键词&#xff1a;模糊测试&#xff0c;大…

三维家:SaaS的IT规模化降本之道|OceanBase 《DB大咖说》(十一)

OceanBase《DB大咖说》第 11 期&#xff0c;我们邀请到了三维家的技术总监庄建超&#xff0c;来分享他对数据库技术的理解&#xff0c;以及典型 SaaS 场景在数据库如何实现规模化降本的经验与体会。 庄建超&#xff0c;身为三维家的技术总监&#xff0c;独挑大梁&#xff0c;负…

DevOps认证是什么?DevOps工具介绍

DevOps 这个词是由Development&#xff08;开发&#xff09; 和 Operations&#xff08;运维&#xff09;组合起来的&#xff0c;你可以把它理解成为一种让开发团队和运维团队紧密合作的方法。 DevOps从2009年诞生到现在已经14年多了&#xff0c;一开始大家还在摸索&#xff0…

AIGC全面进化,未来的“创意”与“灵感”是否需要被重新定义?

在科技日新月异的今天&#xff0c;人工智能生成内容&#xff08;AIGC&#xff09;正以前所未有的速度渗透到各个领域&#xff0c;包括艺术设计、影视制作乃至更广泛的创意产业。随着技术的不断成熟与普及&#xff0c;AIGC不仅改变了内容创作的生产方式&#xff0c;更深刻地触动…

【ACM出版,马来西亚-吉隆坡举行】第四届互联网技术与教育信息化国际会议 (ITEI 2024)

作为全球科技创新大趋势的引领者&#xff0c;中国不断营造更加开放的科技创新环境&#xff0c;不断提升学术合作的深度和广度&#xff0c;构建惠及各方的创新共同体。这是对全球化的新贡献&#xff0c;是构建人类命运共同体的新贡献。 第四届互联网技术与教育信息化国际学术会议…

C++ 彻底搞懂指针(1)

当有人问起,什么是指针时,我会毫不犹豫地回答,指针变量存放的是地址!然后呢,好像也说不出什么了,今天就再来详细看一下指针吧。 本文提纲如下: • 指针变量 • 未初始化的指针 • NULL • void指针 • 指针的指针 首先要明白几点: • 每个字节都有…