我有一个通过spring注解读取的属性文件,如下所示
@Value("${platform}")
private String platform;获得平台参数后,我想根据platform参数值读取第二个参数。
@Value("${url." + platform + ."ws}")
private String url;但这会给出错误,“注释属性的值必须是常量表达式”。由于根据"platform“值的不同,参数会有很多变化,我正在寻找一个通用的解决方案。
发布于 2016-01-14 22:58:38
您不能在@Value表达式中直接访问platform,但您可以使用Spring expression Language来实现您的最终目标。
@Value("${platform}")
private String platform;
@Value("#{'Url.'.concat(${platform}).concat('.ws')}")
private String url;发布于 2011-10-28 16:02:08
该参数在编译时计算。因此,它需要是final或static final等(即Enum)。
我不知道@Value注释是否允许这样做。但您始终可以实现自己的注释。在Java注解中不可能进行扩展。
https://stackoverflow.com/questions/7926596
复制相似问题