annotation属性的值必须是常量表达式

时间:2011-10-28 07:59:59

标签: java spring annotations

我有一个属性文件,我按照这个

通过spring注释读取
    @Value("${platform}")
    private String platform;

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

    @Value("${url." + platform + ."ws}")
    private String url;

但这会产生错误,“注释属性的值必须是常量表达式”。 由于根据“平台”值有很多参数更改,我正在寻找通用的解决方案。

2 个答案:

答案 0 :(得分:2)

在编译时评估参数。因此,它必须是finalstatic final等(即Enum)。

我不知道@Value注释是否允许这样做。但是你总是可以实现自己的注释。 Java注释中无法进行扩展。

答案 1 :(得分:1)

您无法直接在@Value表达式中访问SQLERR-9810 ISAM ERR-12053,但您可以使用Spring Expression Language来实现最终目标。

platform