我创建了一个自定义注释和 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。
如何将 requestBody 中的 memberNo 注入(inject)到 HandlerInterceptorAdapter 中? 是否可以使用 Spring SpEL 或其他东西从 Body 获取数据并发送给 AnnotationResolver? 或者也许还有其他方法可以做到这一点?
我尝试这样做,响应是: ${token.memberNo} 作为字符串
最佳答案
这是不可能的。
注释需要常量值,并且方法参数是动态的。
关于java - 如何从 RequestBody 向自定义注释中注入(inject)数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56870598/