Spring 将 属性 解析为字符串而不是另一个 属性

Spring parse property as String instead of another Property

我有一个现有的 属性 文件需要使用。在那里,我必须定义一个新的 属性 看起来像 - ${testText1}.${testText2}

我不想编辑这些属性,即当我实际获取这些值时,我想要 ${testText1}.${testText2} 而不是替换值。

所以我的 属性 文件看起来像 - someProperty=${testText1}.${testText2}

现在,当我获取这个时:

@Value("${someProperty}")

private String myValue;

myValue 实际上应该包含字符串 - ${testText1}.${testText2} 而不是替换值。

我该怎么做?

您可以通过两种方式完成:

1.Define 新配置 class :

@Configuration
@ConfigurationProperties
public class SomePropertyConfig {

    //name of the property from application.properties
    private String someProperty;

    public String getSomeProperty() {
        return someProperty;
    }

    public void setSomeProperty(String someProperty) {
        this.someProperty = someProperty;
    }
}

之后你可以自动装配这个 bean

@Autowired
 private SomePropertyConfig somePropertyConfig;

这样,目标属性就会被注入配置

  1. 如果您不介意更改 application.properties 文件,可以使用 spring 表达式语言。

application.properties

 someProperty= #{'$'}{testText1}.#{'$'}{testText2}