Spring Boot 使用方法
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({java.lang.annotation.ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Json2Bean {
}
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({java.lang.annotation.ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Json2Bean2 {
}
@Component
public class MyHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver{
private static final Logger logger = LoggerFactory.getLogger(MyHandlerMethodArgumentResolver.class);
@Override
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer container, NativeWebRequest request,
WebDataBinderFactory factory) throws Exception {
boolean b = parameter.hasParameterAnnotation(Json2Bean.class);
System.out.println("==============resolveArgument================" + b);
//根据不同的类型走不同的处理方式
if(b) {
logger.info("Json2Bean");
Test1 t = new Test1();
t.setName("小王");
t.setAge("7");
return t;
}else {
logger.info("Json2Bean2");
return null;
}
//return null;
}
//supportsParameter 返回true 执行 resolveArgument方法
@Override
public boolean supportsParameter(MethodParameter parameter) {
System.out.println("==============supportsParameter========返回true 执行 resolveArgument方法");
return true;
}
}
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Autowired
private AuthorizationInterceptor authorizationInterceptor;
@Autowired
private MyHandlerMethodArgumentResolver myHandlerMethodArgumentResolver;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(authorizationInterceptor).addPathPatterns("/**");
}
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
argumentResolvers.add(myHandlerMethodArgumentResolver);
}
// @Override
// public void addResourceHandlers(ResourceHandlerRegistry registry) {
// registry.addResourceHandler("swagger-ui.html")
// .addResourceLocations("classpath:/META-INF/resources/");
//
// registry.addResourceHandler("/webjars/**")
// .addResourceLocations("classpath:/META-INF/resources/webjars/");
// }
}
@RequestMapping("/getTestByName")
public @ResponseBody Test1 getUserByName(@Json2Bean Test1 test1){
System.out.println(test1);
String name = test1.getName();
System.out.println(name);
return test1;
}
@RequestMapping("/getTestByName2")
public @ResponseBody Test1 getTestByName2(@Json2Bean2 Test1 test1){
System.out.println(test1);
String name = test1.getName();
System.out.println(name);
return test1;
}