首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批注属性的值必须为常量表达式

批注属性的值必须为常量表达式
EN

Stack Overflow用户
提问于 2011-10-28 15:59:59
回答 2查看 16.8K关注 0票数 5

我有一个通过spring注解读取的属性文件,如下所示

代码语言:javascript
复制
    @Value("${platform}")
    private String platform;

获得平台参数后,我想根据platform参数值读取第二个参数。

代码语言:javascript
复制
    @Value("${url." + platform + ."ws}")
    private String url;

但这会给出错误,“注释属性的值必须是常量表达式”。由于根据"platform“值的不同,参数会有很多变化,我正在寻找一个通用的解决方案。

EN

回答 2

Stack Overflow用户

发布于 2016-01-14 22:58:38

您不能在@Value表达式中直接访问platform,但您可以使用Spring expression Language来实现您的最终目标。

代码语言:javascript
复制
@Value("${platform}")
private String platform;

@Value("#{'Url.'.concat(${platform}).concat('.ws')}")
private String url;
票数 3
EN

Stack Overflow用户

发布于 2011-10-28 16:02:08

该参数在编译时计算。因此,它需要是finalstatic final等(即Enum)。

我不知道@Value注释是否允许这样做。但您始终可以实现自己的注释。在Java注解中不可能进行扩展。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7926596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档