在上一篇文章中使用到了HandlerMethodArgumentResolver,这里就给大家再详细讲一下HandlerMethodArgumentResolver。
SpringMvc中的HandlerAdapter会对Controller层方法的参数执行 HandlerMethodArgumentResolver(对参数的解析器)中的方法。
首先HandlerMethodArgumentResolver接口主要有两个方法,supportsParameter和resolveArgument。
supportsParameter方法
boolean supportsParameter(MethodParameter parameter);
这个方法,从字面上就很好理解,返回值是boolean类型,作用是,判断Controller层中的参数,是否满足条件,满足条件则执行resolveArgument方法,不满足则跳过。
resolveArgument方法
Object resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer,
NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) throws Exception;
这个方法,在supportsParameter方法返回true的情况下才会被调用。用于处理一些业务,将返回值赋值给Controller层中的这个参数。
总结一下,HandlerMethodArgumentResolver是一个参数解析器,我们可以通过写一个类实现HandlerMethodArgumentResolver接口来实现对COntroller层中方法参数的修改。
扫码关注,不迷路