java - 在注释中注入(inject) Spring 属性列表

标签 java spring spring-el

我想将 REST 端点动态映射到 RestController。 我想将端点配置为属性。

我的 RestController 看起来像这样

@RestController
public class MyRestController {
    }

    @PutMapping("#{'${mapping}'.split(',')}")
    public String fooMapping(@RequestHeader MultiValueMap<String, String> headers, HttpServletRequest request) throws URISyntaxException {

        return "foo";
    }
}

application.properties 看起来像这样

mapping=/mapping1,/mapping2,/mapping3

如何将逗号分隔列表注入(inject)注释?以下硬编码方法确实有效。

@PutMapping(value = {"/mapping1", "/mapping2", "/mapping3"})

最佳答案

不幸的是,SpEL 表达式仅适用于 @Value 注释,但似乎不适用于 @RequestMapping 和相关注释。 @RequestMapping 仅支持属性中的占位符。

关于java - 在注释中注入(inject) Spring 属性列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55235928/

相关文章:

java - 在安卓中使用 Mathjax

java - Maven jetty 嵌入(fat jar)-jar 中缺少 src/main/webapp

java - eclipse 可以在赋值运算符的左侧自动完成吗?

java - 如何从 KIE 工作台获取 kieContainer

spring - 在 Quartz 作业中使用 PersistenceContext

spring - 自定义 spring 验证错误

java - 将遗留代码转换为 Spring 依赖注入(inject)

spring - Kotlin 编译器提示在属性定义中使用 SPeL 表达式。为什么?

java - 如何使用 Spring [SpEL] 在 Java 中将一个 Java 对象的属性合并到另一个对象?