簡要描述:
- controller方法參數解析器,在所有controller方法都用共同的方法參數的共性時,可以利用此統(tǒng)一解析,針對參數類型,注解,參數值各種方式
example1:
public class ClientInfoRequestArgumentResolver implements HandlerMethodArgumentResolver {
@Override
public boolean supportsParameter(MethodParameter parameter) {
return MiniappClientInfo.class == parameter.getParameterType();
}
@Override
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer,
NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
if (webRequest.getAttribute(ReqAttributes.CLIENTINFO, RequestAttributes.SCOPE_REQUEST) != null) {
MiniappClientInfo clientInfo = (MiniappClientInfo) webRequest.getAttribute(ReqAttributes.CLIENTINFO,
RequestAttributes.SCOPE_REQUEST);
return clientInfo;
}
return null;
}
2.controller代碼:
public JsonResp<CreditStageResp> creditStage(WebAuthUser user, MiniappClientInfo ){
//doSomething();
}
3.配置
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
argumentResolvers.add(new ClientInfoRequestArgumentResolver());
}