SpringMVC 中的类型转换
SpringMVC 中的类型转换
官方文档:
注意:先有类型转换,然后才有数据绑定。
参考博客:
1. 揭秘Spring类型转换 - 框架设计的基石 - YourBatman - 博客园
2. Spring早期类型转换,基于PropertyEditor实现 - YourBatman - 博客园
3. 搞定收工,PropertyEditor就到这 - YourBatman - 博客园
4. 上新了Spring,全新一代类型转换机制 - YourBatman - 博客园
5. 穿过拥挤的人潮,Spring已为你制作好高级赛道 - YourBatman - 博客园
6. 抹平差异,统一类型转换服务ConversionService - YourBatman - 博客园
7. JDK拍了拍你:字符串拼接一定记得用MessageFormat#format - YourBatman - 博客园
8. 格式化器大一统 -- Spring的Formatter抽象 - YourBatman - 博客园
9. 细节见真章,Formatter注册中心的设计很讨巧 - YourBatman - 博客园
第一篇
formatter 接口强调的是格式化,因此实现此接口的时候,我们不仅要实现 A 到 B 类型的格式化,同时也要实现 B 到 A 的格式化
typeconverter 是 Spring 内部使用类型转换的入口,从 convertIfNecessary 这个方法名称就可以看出来。
typeconverter 内部委托给 propertyEditor 或者 conversionservice 实现
第二篇
第六篇
牛逼就牛逼在,
结合数据绑定之后,
这个 conversionService 是在 Controller 控制器方法的参数解析中自动使用的,是无感级别的使用,当我们自定义了 conversionService 之后,就可以直接在控制器方法中使用转换的目标类型的参数,非常牛逼。