从另一个属性的属性占位符位置

我需要从一个我不知道的位置将一些属性加载到Spring上下文中,直到程序运行。

所以我认为,如果我有一个没有位置的PropertyPlaceholderConfigurer, my.location从系统属性中读取my.location ,然后我可以在上下文中使用该位置:property-placeholder

喜欢这个

   

但这不起作用, location="classpath:${my.location}"也不行

保罗

这里的问题是你正在尝试使用属性占位符语法配置属性占位符:)这有点像鸡蛋和鸡蛋的情况 – spring无法解析你的${my.location}占位符,直到它配置为财产占位符。

这不太令人满意,但您可以使用更明确的语法来避免它:

        

您可以采用略有不同的方法来实现此目的。 以下是我们如何配置它。 我加载默认属性,然后使用可配置位置的属性覆盖它们。 这对我很有用。

     classpath:site/properties/default/placeholder.properties  classpath:site/properties/${env.name}/placeholder.properties