V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ayugudu
V2EX  ›  Java

Spring boot 参数是怎样解析的呀

  •  
  •   ayugudu · 2022-04-15 20:22:50 +08:00 · 2259 次点击
    这是一个创建于 983 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    5 条回复    2022-04-16 10:44:58 +08:00
    ayugudu
        1
    ayugudu  
    OP
       2022-04-15 20:38:16 +08:00
    个人的理解 MessageConvert:用于解析 request 中 数据的解析

    databinder:用于解决 request 中解析的数据 绑定到 所使用的接收对象
    ayugudu
        2
    ayugudu  
    OP
       2022-04-15 20:38:43 +08:00
    希望又老哥 给我讲解一下 原理
    ayugudu
        3
    ayugudu  
    OP
       2022-04-15 20:39:48 +08:00
    messageconvert 在返回参数 时也使用了 更像是 将另一种数据 转换成其他类型的
    ikas
        4
    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
        5
    ayugudu  
    OP
       2022-04-16 10:44:58 +08:00
    @ikas 谢谢老哥
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3055 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 13:52 · PVG 21:52 · LAX 05:52 · JFK 08:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.