ConverterFactory

【原创】遨游springmvc之Converter

[亡魂溺海] 提交于 2019-11-27 18:55:53
1.前言 在前一篇WebDataBinder中讲述了了一个PropertyEditor,它通过setAsText满足了字符串到指定类型的转换,但是它实现不了从任意类型转换到目标类型,所以在spring3.x之后引入了Converter,它实现了上述需求的转换。 2.原理 2.1 工作原理图 2.2 原理介绍 ①:类型转换:内部的ConversionService会根据S源类型/T目标类型自动选择相应的Converter SPI进行类型转换,而且是强类型的,能在任意类型数据之间进行转换; ②:数据验证:支持JSR-303验证框架,如将@Valid放在需要验证的目标类型上即可; ③:格式化显示:其实就是任意目标类型---->String的转换,完全可以使用Converter SPI完成。 Spring为了更好的诠释格式化/解析功能提供了Formatter SPI,支持根据Locale信息进行格式化/解析,而且该套SPI可以支持字段/参数级别的细粒度格式化/解析,流程如下: ①:类型解析(转换):String---->T类型目标对象的解析,和PropertyEditor类似; ②:数据验证:支持JSR-303验证框架,如将@Valid放在需要验证的目标类型上即可; ③:格式化显示:任意目标类型---->String的转换,和PropertyEditor类似。 3.Converter 3