【问题标题】:Inject list of Spring properties in annotation在注解中注入 Spring 属性列表
【发布时间】:2019-03-19 07:53:58
【问题描述】:

我想将 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

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

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

【问题讨论】:

  • @PutMapping 值仅采用常量值。所以你不能从属性文件中加载它的值。

标签: java spring spring-el


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-19
    • 2012-08-06
    • 2016-12-26
    • 1970-01-01
    • 2022-06-22
    • 2013-11-14
    • 2015-06-13
    • 2013-01-15
    相关资源
    最近更新 更多