从另一个属性的属性占位符位置
我需要从一个我不知道的位置将一些属性加载到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