美文网首页
自定义注解处理参数

自定义注解处理参数

作者: Depro | 来源:发表于2021-07-15 19:40 被阅读0次

@RequestMapping("/map.do")

@ResponseBody

public Map<String, Integer> map(@FParam String user)

{

System.out.println("user:" + user);

return ImmutableMap.of("a", 1, "b", 2, "c", 3, "d", 4, "e", 5);

}

这里的参数user不用接口传,在FParamResolver已经赋值了,user=super man

@Target(ElementType.PARAMETER)

@Retention(RetentionPolicy.RUNTIME)

public @interface FParam

{ String name() default "";}

@Configuration

@ComponentScan("com.example.spring_web")

public class Config extends WebMvcConfigurationSupport {

@Override protected void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) { argumentResolvers.add(new FParamResolver()); }}

public class FParamResolver implements HandlerMethodArgumentResolver

{

@Override

public boolean supportsParameter(MethodParameter parameter)

{ return parameter.hasParameterAnnotation(FParam.class); }

@Override

public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception

{

String userName = "super man";

//这个值可以从redis或者mysql中查出来, 这里返回userName就赋值给了方法参数中带@FParam注解的参数

return userName; }

}

相关文章

网友评论

      本文标题:自定义注解处理参数

      本文链接:https://www.haomeiwen.com/subject/ucympltx.html