介绍
一些请求参数, 需要解析成某个自定义的类, 而spring boot中并没有提供这样自动转换的注解, 但是,spring boot 预留了扩展接口,所以,我们可以自定义实现一个注解.
例如: http://localhost:8999/new/test?a={"name":"aaa", "age":18}&b=123
我们可以通过自定义注解,来把 a 对应的值转换成我们系统中的类
创建注解
package com.example.demo.conf;
import java.lang.annotation.*;
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestJson {
String value();
}
创建请求参数解析实现类
package com.example.demo.conf;
import com.alibaba.fastjson.JSONObject;
import org.springframework.core.MethodParameter;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.support.WebDataBinderFactory;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.method.suppo