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

ysn*_*nky 5 java spring annotations

我有一个属性文件,我通过这样的 spring 注释读取

    @Value("${platform}")
    private String platform;
Run Code Online (Sandbox Code Playgroud)

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

    @Value("${url." + platform + ."ws}")
    private String url;
Run Code Online (Sandbox Code Playgroud)

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

sse*_*ano 2

该参数在编译时评估。所以它需要是finalstatic final除其他外(即Enum)。

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