面试题答案
一键面试- 参数绑定的一般原理:
- Spring使用
HandlerMethodArgumentResolver
机制来进行参数绑定。当一个请求到达Spring的DispatcherServlet
,DispatcherServlet
会找到对应的HandlerMapping
,进而找到处理该请求的Handler
(通常是一个@Controller
中的方法)。 - 对于每个方法形参,Spring会遍历所有已注册的
HandlerMethodArgumentResolver
,寻找能够处理该参数的解析器。
- Spring使用
- 处理JSON格式数据转换为Java对象:
- 当请求携带JSON格式数据时,Spring默认使用
MappingJackson2HttpMessageConverter
来处理。 MappingJackson2HttpMessageConverter
依赖Jackson库,它能将请求体中的JSON数据反序列化为Java对象。- 在方法形参上,通常使用
@RequestBody
注解来标识该参数应从请求体中获取并进行反序列化。例如:
@PostMapping("/example") public ResponseEntity<String> handleRequest(@RequestBody MyObject obj) { // 处理逻辑 return ResponseEntity.ok("Success"); }
- 这里
MyObject
是自定义的Java类,Jackson会根据JSON的字段名和MyObject
类的属性名进行匹配(默认按驼峰命名规则匹配),将JSON数据填充到MyObject
对象的相应属性中。如果JSON字段名和Java属性名不一致,可以使用@JsonProperty
注解在Java类属性上指定JSON中的字段名。例如:
public class MyObject { @JsonProperty("json_field_name") private String javaProperty; // 省略getter和setter }
- 当请求携带JSON格式数据时,Spring默认使用