SpringBoot实现自定义注解与控制器参数注入

使用Springboot时,常常为spring提供的@RequestBody 这类注解感叹,居然能如此简洁方便的为方法参数赋值!于是乎想着自己也能自定义类似的注解,本篇就讲解如何实现自定义注解和控制器参数注入。

本文的开发环境是 JDK1.8 + SpringBoot2 。

1.新建自定义注解

2.新建一个解析器

要实现方法参数注入,需要依靠spring mvc的解析器完成。SpringBoot中为我们提供了相关的处理解析器-HandlerMethodArgumentResolver,我们只需要实现接口完成业务逻辑处理即可。

HandlerMethodArgumentResolver接口需要实现2个方法:

  • supportsParameter
  • resolveArgument

supportsParameter

用于判断是否需要对该参数进行解析,如果该接口的返回值为true,则会继续执行resolveArgument接口方法。所以我们判断目标方法入参中是否有使用MyAnnotation注解。

resolveArgument

是处理参数的具体执行,只有supportsParameter为true时才会调用此方法。本例中我们只是简单的返回固定字符串用于赋值,所以我们的MyAnnotation注解要使用在String类型参数上。

3.添加到SpringMVC的ArgumentResolvers

将我们新建的MyAnnotationResolver添加到Spring MVC的参数解析器,这样才能让我们的解析器生效。

4.在方法参数上加上@MyAnnotation

最后我们在控制器的方法参数上加上@MyAnnotation来验证。

 

 

参考资料:https://www.licoy.cn/3238.html,https://blog.csdn.net/qq_33532804/article/details/82320386

 


发表评论

电子邮件地址不会被公开。 必填项已用*标注