【发布时间】:2017-08-10 16:15:57
【问题描述】:
我想让 Spring 分配一个属性值。
public class Foobar {
@Value("${example.property.foo:bar}")
private String foo;
}
假设我想在几个不同的地方引用example.property.foo,所以我宁愿将标志分配为 Foobar 上的常量:
public class Foobar {
public static final String FOO_PROPERTY_FLAG = "example.property.foo";
}
example.property.foo=whatever 的设置发生在别处(作为系统属性,或在 @TestPropertySource 中)。
如何在注解中引用FOO_PROPERTY_FLAG?这有效:
@Value("${" + FOO_PROPERTY_FLAG + ":bar}")
但这有点难看。我可以在这里以某种方式使用"#{}" 表达式语法吗?
@Value("${#{FOO_PROPERTY_FLAG}:bar}") // doesn't work; value is never injected
【问题讨论】:
-
我也有同样的问题。很想知道答案。