Spring SPEL表达式,访问嵌套接口String常量

Ben*_*ldt 2 java spring spring-el

我使用嵌套接口来存储String常量:

public interface Constants{
    interface level1 {
        interface level2 {
            String CONSTANT = "constant";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想将这些常量注入spring值字段,我试过:

 <entry key="key" value="#{com.company.Constants.level1.level2.CONSTANT}"/>
 <entry key="key" value="#{T(com.company.Constants.level1.level2).CONSTANT}"/>
Run Code Online (Sandbox Code Playgroud)

但它不起作用,正确的方法是什么?

dim*_*sli 6

编译代码时,Constants接口会编译为3个类文件:

在此输入图像描述

那是因为在level1嵌套接口编译成类文件与名称Constants$level1level2嵌套嵌套接口编译与名类文件Constants$level1$level2.

既然你知道如何引用第二个嵌套level2检索常量,如下所示:

<entry key="key" value="#{T(com.company.Constants$level1$level2).CONSTANT}"/>
Run Code Online (Sandbox Code Playgroud)