本文主要是通过自定义参数解析器学习springmvc的扩展点
主要想完成的操作是:
通过自定义一个注解,将入参中的 json格式的字符串,通过自定义的参数解析器转换为指定类型的list数组
应用
自定义参数解析器
public class MyHandlerMethodArgumentResolverTest implements HandlerMethodArgumentResolver {
@Override
public boolean supportsParameter(MethodParameter methodParameter) {
Json ann = (Json) methodParameter.getParameterAnnotation(Json.class);
System.out.println(methodParameter);
return ann != null;
}
@Override
public Object resolveArgument(MethodParameter methodParameter, ModelAndViewContainer modelAndViewContainer,
NativeWebRequest nativeWebRequest, WebDataBinderFactory webDataBinderFactory) throws Exception {
Json ann = (Json) methodParameter.getParameterAnnotation(Json.class);
String param1 = ann.value();
System.out.println(param1);
System.out.println(ann.array());
String parameter = nativeWebRequest.getParameter(param1);
return JSON.parseArray(parameter, ann.array());
}
}
将自定义参数解析器加入到spring容器中
@Configuration
@ComponentScan("com.springmvc")
@EnableWebMvc
public class AppConfig implements WebMvcConfigurer {
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> reso

本文介绍了如何在Spring MVC中实现自定义参数解析器,以将JSON字符串转换为指定类型的List数组。通过创建自定义注解和解析器,然后将其添加到Spring容器中,实现了控制器方法参数的特殊解析。在请求处理过程中,Spring会根据参数类型选择合适的解析器进行解析。
最低0.47元/天 解锁文章
1457

被折叠的 条评论
为什么被折叠?



