如何从RequestBody的自定义注释中注入数据

时间:2019-07-03 12:51:40

标签: java spring spring-boot spring-el

我创建了一个自定义批注和HandlerInterceptorAdapter,它们将仅获取 memberNo 并将其打印出来。

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface MyCustomAnnotation
{
    String memberNo();
}

在Controller上类似这样:

@MyCustomAnnotation(memberNo = "${someBodyObject.memberNo}")
@RequestMapping(value = "/test/", method = RequestMethod.GET)
public String test(@RequestBody SomeBodyObject someBodyObject) {
    System.out.println("--- TEST ---");
    return "-- FINISHED ---";
}

请求正文SomeBodyObject提交了一个,它是memberNo。

如何将MemberB从RequestBody注入到HandlerInterceptorAdapter? 是否可以使用Spring SpEL或其他方式从Body获取数据并将其发送到AnnotationResolver? 也许还有其他方法可以做到这一点?

我这样尝试,响应为:$ {token.memberNo}作为字符串

1 个答案:

答案 0 :(得分:0)

那不可能。

注释需要常量值,并且方法参数是动态的。