Spring boot 参数是怎样解析的呀

2022-04-15 20:22:50 +08:00
 ayugudu

DataBinder 用于绑定对象 那 messagecovert 用于消息转换 ,两者的关联是什么呀 到底是怎样绑定的啊

2032 次点击
所在节点    Java
5 条回复
ayugudu
2022-04-15 20:38:16 +08:00
个人的理解 MessageConvert:用于解析 request 中 数据的解析

databinder:用于解决 request 中解析的数据 绑定到 所使用的接收对象
ayugudu
2022-04-15 20:38:43 +08:00
希望又老哥 给我讲解一下 原理
ayugudu
2022-04-15 20:39:48 +08:00
messageconvert 在返回参数 时也使用了 更像是 将另一种数据 转换成其他类型的
ikas
2022-04-15 23:19:45 +08:00
1.
HttpMessageConverter, 是 spring web 特有的,其针对的是 http body 的解析,也就是你用 @RequestBody 的地方,就是用它


2.
DataBinder 用于给目标对象设置属性的接口,其实 spring 中通用的,不仅仅局限于 web, 而 WebDataBinder 继承自 DataBinder 顾名思义

DataBinder 实现了 TypeConverter 接口,因为给目标属性设置 value 的时候需要转换到一致的类型

TypeConverter 接口,其实现主要依赖 spring 提供的转换接口,主要有 PropertyEditorSupport 与 Converter<S, T>

PropertyEditorSupport 继承自 jdk javabean 包中的 PropertyEditor,其主要针对字符转与其他类型的相互转换

Converter<S, T>,这是 spring 中提供的任意 2 中类型转换的接口
ayugudu
2022-04-16 10:44:58 +08:00
@ikas 谢谢老哥

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/847224

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX