Springboot中HandlerMethodArgumentResolver的作用是什么
1、HandlerMethodArgumentResolver简介
HandlerMethodArgumentResolver 是SpringMVC中的一个接口,它允许开发者在SpringMVC中支持自定义参数解析,它可以支持更多的参数类型,比如:HttpServletRequest、HttpServletResponse、HttpSession、Model等,也可以支持自定义的参数类型,比如:自定义的对象类型。
2、HandlerMethodArgumentResolver的作用
HandlerMethodArgumentResolver的作用是帮助SpringMVC在处理请求的时候,把请求参数解析成Controller方法参数,从而实现Controller方法参数的自动注入。
HandlerMethodArgumentResolver的作用主要是实现Controller方法参数的注入,SpringMVC中的参数解析机制是通过HandlerMethodArgumentResolver的实现类来实现的,它可以支持更多的参数类型,比如:HttpServletRequest、HttpServletResponse、HttpSession、Model等,也可以支持自定义的参数类型,比如:自定义的对象类型。
3、HandlerMethodArgumentResolver的使用
使用HandlerMethodArgumentResolver需要实现HandlerMethodArgumentResolver接口,并实现其中的两个方法:supportsParameter() 和resolveArgument()。
public class MyHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver {
@Override
public boolean supportsParameter(MethodParameter methodParameter) {
// 判断参数类型是否是自定义的类型
return methodParameter.getParameterType().isAssignableFrom(MyObject.class);
}
@Override
public Object resolveArgument(MethodParameter methodParameter, ModelAndViewContainer modelAndViewContainer, NativeWebRequest nativeWebRequest, WebDataBinderFactory webDataBinderFactory) throws Exception {
// 从请求中获取参数,并封装成自定义的对象
MyObject myObject = new MyObject();
String myParam = nativeWebRequest.getParameter("myParam");
myObject.setMyParam(myParam);
return myObject;
}
}
实现完HandlerMethodArgumentResolver接口之后,还需要在SpringMVC的配置类中进行注册,以便SpringMVC可以使用它来解析请求参数:
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
// 注册自定义的HandlerMethodArgumentResolver
argumentResolvers.add(new MyHandlerMethodArgumentResolver());
}
}
这样,当SpringMVC处理请求的时候,就会使用自定义的HandlerMethodArgumentResolver来解析请求参数,从而实现Controller方法参数的自动注入。
猜您想看
-
如何在Linux中使用SSH连接另一个设备
Linux系统...
2023年05月05日 -
SQL软件如何安装
一、下载MyS...
2023年05月26日 -
怎么在QQ上设置个性头像?
一、获取头像1...
2023年05月15日 -
C++怎么实现最小限度暴露成员
实现最小限度暴...
2023年07月23日 -
为什么netstat对某些服务只显示了tcp6监听端口
1. TCP和...
2023年07月22日 -
如何提升手机电池续航
1. 优化手机...
2024年05月30日