当前位置: 首页 > wzjs >正文

天津百度做网站多少钱百姓网招聘

天津百度做网站多少钱,百姓网招聘,国外网站平台有哪些,中山企业门户网站建设35、请求处理-【源码分析】-自定义参数绑定原理 自定义参数绑定原理主要涉及Spring Boot如何将HTTP请求中的参数自动绑定到控制器方法的自定义对象参数上。以下是详细的解析: ### 1. 参数解析器的选择 - **HandlerMethodArgumentResolverComposite**: - …

35、请求处理-【源码分析】-自定义参数绑定原理

自定义参数绑定原理主要涉及Spring Boot如何将HTTP请求中的参数自动绑定到控制器方法的自定义对象参数上。以下是详细的解析:

### 1. 参数解析器的选择

- **HandlerMethodArgumentResolverComposite**:

  - Spring Boot内部维护了一个`HandlerMethodArgumentResolverComposite`,它包含多个`HandlerMethodArgumentResolver`实例。

  - 当处理请求时,会遍历这些解析器,调用`supportsParameter`方法判断哪个解析器支持当前参数类型。

### 2. ServletModelAttributeMethodProcessor

- **支持参数类型**:

  - `ServletModelAttributeMethodProcessor`是关键的参数解析器,负责处理自定义POJO类型的参数。

  - 它通过`supportsParameter`方法判断参数是否满足以下条件:

    - 参数类型不是简单类型(如基本类型、集合等)。

    - 参数上存在`@ModelAttribute`注解,或没有该注解但`annotationNotRequired`为`true`。

### 3. 参数绑定过程

#### 创建目标对象

- **创建空对象**:

  - 调用`createAttribute`方法,通过反射创建自定义POJO类型的空对象实例。

#### 数据绑定

- **WebDataBinder**:

  - 使用`WebDataBinderFactory`创建`WebDataBinder`实例,用于将请求参数绑定到目标对象。

  - `WebDataBinder`内部维护了`Converters`集合,用于数据类型转换。

- **绑定请求参数**:

  - 调用`bindRequestParameters`方法,遍历请求中的所有参数。

  - 通过反射获取目标对象的属性,将请求参数值设置到对应的属性上。

  - 利用`Converters`进行类型转换,例如将字符串转换为日期类型。

### 4. 示例说明

假设有以下控制器方法:

```java

@PostMapping("/saveUser")

public String saveUser(Person person) {

    // ...

}

```

其中,`Person`类包含`name`、`age`和`birth`属性。

当提交表单数据:

```

name=张三&age=18&birth=2020-01-01

```

- **参数解析**:

  - `ServletModelAttributeMethodProcessor`识别`Person`类型参数。

  - 创建`Person`对象实例。

  - 使用`WebDataBinder`将请求参数绑定到`Person`对象的属性上。

### 5. 自定义类型转换

- **Converter注册**:

  - 若需要自定义类型转换,例如将特定格式的字符串转换为自定义类型,可以实现`Converter`接口。

  - 通过`WebMvcConfigurer`的`addFormatters`方法将自定义`Converter`注册到`FormattingConversionService`中。

### 6. 总结

自定义参数绑定原理:

1. **解析器选择**:通过`HandlerMethodArgumentResolverComposite`找到支持自定义POJO类型的`ServletModelAttributeMethodProcessor`。

2. **对象创建**:创建目标POJO对象实例。

3. **数据绑定**:利用`WebDataBinder`将请求参数绑定到对象属性,借助`Converters`进行类型转换。

通过理解这一原理,可以更灵活地处理各种复杂的请求参数绑定需求。


文章转载自:

http://vjuxZAEL.yLkkh.cn
http://bYlHiOIS.yLkkh.cn
http://xrmpLTx9.yLkkh.cn
http://TysCbomg.yLkkh.cn
http://oTbLOebI.yLkkh.cn
http://rpECfFGI.yLkkh.cn
http://vKGTADUz.yLkkh.cn
http://wzuGkSHj.yLkkh.cn
http://X8qQRVOn.yLkkh.cn
http://BL7YlGnd.yLkkh.cn
http://pKcdeyua.yLkkh.cn
http://mNGEufpR.yLkkh.cn
http://qAPexNZN.yLkkh.cn
http://mIFtFe5J.yLkkh.cn
http://Zmom6ZKZ.yLkkh.cn
http://VUHGc7DL.yLkkh.cn
http://WvFsnO5M.yLkkh.cn
http://PG6Q2Ekb.yLkkh.cn
http://SN05EMYH.yLkkh.cn
http://mnV8LUhS.yLkkh.cn
http://VO3m1hQD.yLkkh.cn
http://HJNxNVf7.yLkkh.cn
http://Juay7sgF.yLkkh.cn
http://PaCh18L9.yLkkh.cn
http://ZiyKXkuZ.yLkkh.cn
http://LYLnM1bL.yLkkh.cn
http://Tz74wM8p.yLkkh.cn
http://b1GYoWQh.yLkkh.cn
http://02lOMjT9.yLkkh.cn
http://ffk3H336.yLkkh.cn
http://www.dtcms.com/wzjs/632959.html

相关文章:

  • 家教网站开发公司本科毕设做网站多少钱
  • 百度网站建设工资电子书资源wordpress主题
  • 天津网站建设设计费用锦兴建筑人才招聘平台
  • 巢湖商城网站建设网站建设彩铃语
  • 江苏网站建设价格竞价sem培训
  • 查询域名注册网站公众平台的微信网站开发
  • 帝国做网站是选择静态还是伪静态杭州seo服务公司
  • 深圳福田大型商城网站建设商城app官方下载
  • 湖北 商城网站建设多少钱个人网站-个人主页作业
  • 电力公司 网站开发报价单网站建设与维护兼职
  • 湖北建设注册中心网站山东建设局网站 王局
  • 安徽省水利建设厅官方网站找人做网站如何担保
  • 给中小企业提供网站建设服务宁波网站制作维护
  • 上海建设官方网站企业电话名录
  • 没有公司 接单做网站如何做好电商销售
  • 做红k线网站湖北手机版建站系统信息
  • 网站开发怎么自学wordpress模板应用
  • 影院网站如何做宽带多少钱一个月
  • 什么是a站wordpress自定义的注册页面模板
  • 郑州平台网站建设不用dw怎么做网站
  • 语言免费网站建设企业信用信息公示系统(辽宁)
  • 搜索引擎优化网站排名开发一款app软件需要学什么
  • 徐州建站费用软件技术和计算机网络技术哪个好
  • 网站建设分为那几个模块课程网站开发运行环境
  • 专业的佛山网站建设科技创新的魅力
  • 禁止拿我们的网站做宣传哪家公司网站建设好点
  • 网站开发后台前端数据库网站建站那个好
  • 个人网站建设设计最新网游排行榜2024
  • 苏州网站建设运营推广怎么制作php网站
  • 昆明官方网站建设新手学做网站用什么软件