目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

JAVA全系列 教程

3762个小节阅读:7095k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(435)
赞(0)

2.Spring框架中类型转换器

从Spring Framework 3.0开始提供了更加强大的内置转换器,分别是:Converter、ConverterFactory、GenericConverter 三个接口及实现类,但是这些实现类绝大多数都是default修饰,无法跨包访问。

这三个接口的功能要比PropertyEditor更加强大。可以实现某个类型向另外一个类型转换,不再局限于String向其他类型转换。

但是Spring框架到目前的Spring Framework 6一直都对两种方式进行支持。这也是Spring框架的特点,解耦和原生API方式,让我们开发者自己选(为了让开发者更倾向使用解耦方式,一般解耦方式使用起来都比原生简单)。

Spring框架类型转换经常发生的,只是这个事情由Spring框架完成,程序员不深入底层时,只是知道有这个事情。如果深入了解Spring框架,就知道Spring在进行数据绑定时会帮助我们进行类型转换。

类型转换几个常见场景。

  • Xml文件配置的Bean属性都是字符串类型,而Bean属性类型确不仅仅是字符串。这时会用类型转换。
  • @Value注解。properties文件中值都是字符串,获取后希望是某个类型。这时会用类型转换
  • Spring MVC接收请求参数。HTTP请求参数都是字符串,在我们接收时希望接收为其他类型,Spring框架在数据绑定时会进行类型转换。

2.1 Converter接口

Converter接口功能比较简单,就是把S类型值转换为T类型。Spring默认提供了很多实现类,都是一些简单数据类型到另一种简单数据类型的转换。

里面提供了大量的实现了,但是这些类的访问权限修饰符都是default,意味着跨包无法访问。

2.2 ConverterFactory

用于把S类型转换为T类型,但是强制要求T的类型必须是R类型子类。具体是什么类型都行,只要是之类中一种就可以。因为接口泛型中R设置为转换后结果类型的父类,所以具体转后后的类型可能是R的子类1,也可能是R的子类2,所以有人认为这数据1:N的转换方式。

2.3 GenericConverter

GenericConverter转换器主要实现N:N的转换。例如

image-20230327172535737

这些接口的实现类因为大部分都是default修饰,意味着是Spring框架自己使用的,如果想要使用可以实现接口进行自定义实现。

以String转Integer为例,简单使用一下转换器

自定义转换器

测试结果

 

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2