java - 如何从 RequestBody 向自定义注释中注入(inject)数据

标签 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。

如何将 requestBody 中的 memberNo 注入(inject)到 HandlerInterceptorAdapter 中? 是否可以使用 Spring SpEL 或其他东西从 Body 获取数据并发送给 AnnotationResolver? 或者也许还有其他方法可以做到这一点?

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

最佳答案

这是不可能的。

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

关于java - 如何从 RequestBody 向自定义注释中注入(inject)数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56870598/

相关文章:

java - 运行嵌入在我的应用程序中的 Apache DS

JavaFX Spring Boot @Autowire 服务为空

mysql - spring jpa application.properties useSSL

maven - 如何构建 WAR 文件以从 JHipster Spring Boot 项目部署到 Tomcat 上?

java - Maven插件: inject project classpath

java - 用于分析大型 Java 堆转储的工具

java - 在java中用非常大的指数计算幂

javascript - spring mvc ajax 错误请求错误

java - JPA 枚举继承

java - org.hibernate.loader.MultipleBagFetchException : cannot simultaneously fetch multiple bags