SpringBoot自定义参数解析器
我们都知道SpringMvc的Controller的方法上可以接收各种各样的参数,比如**HttpServletRequest
或HttpServletResponse
*,各种注解@RequestParam
、@RequestHeader
、
@RequestBody
、@PathVariable
、@ModelAttribute
,这些参数是从哪里获取的?
这些参数都是由不同的参数解析器为我们解析出来的,可以解析类也可以解析带注解的类
- 我们可以利用解析器解析自定义的参数(类、注解),在我们需要的传入的controller方法上传入它(不需要每次都要在方法内部通过
request
、response
等参数做一系列操作来获取该类对象)
添加解析器
- 我们想要自定义解析参数的时候我们就需要通过更改SpringBoot的配置来添加自己实现的解析类
自定义配置类实现WebMvcConfigurer
接口,重写其中的addArgumentResolvers
方法来添加自己的解析类(通过自动注入的方法注入)
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Autowired
private UserArgumentResolver userArgumentResolver;
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
resolvers.add(userArgumentResolver);
}
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Autowired
private UserArgumentResolver userArgumentResolver;
@Override
public void addArgumentResolvers(List<