Java 使用spring在运行时使用动态名称访问属性

Java 使用spring在运行时使用动态名称访问属性,java,spring,properties,spring-properties,Java,Spring,Properties,Spring Properties,我有一个像这样的属性文件 server.se.host server.se.port server.us.host server.us.port 等等。它是用于不同国家(本例中为瑞典和美国)的主机/端口列表。这些也可以设置为服务器、服务器、主机等形式的环境变量 但是,代码不知道构建时存在哪些国家,因此我需要动态查找这些变量,包括那些在运行时仅作为环境变量可用的变量 理想情况下,我希望得到带有动态前缀的configration类,比如 Config countrySpecificConfig

我有一个像这样的属性文件

server.se.host
server.se.port

server.us.host
server.us.port
等等。它是用于不同国家(本例中为瑞典和美国)的主机/端口列表。这些也可以设置为服务器、服务器、主机等形式的环境变量

但是,代码不知道构建时存在哪些国家,因此我需要动态查找这些变量,包括那些在运行时仅作为环境变量可用的变量

理想情况下,我希望得到带有动态前缀的configration类,比如

Config countrySpecificConfig = ConfigMagic.getFromPropertiesWithPrefix("server." + countryCode);
如果这不可能,我会很高兴的

String countrySpecificHost = PropertiesMagic.get("server." + countryCode + ".host"); 
String countrySpecificPort = PropertiesMagic.get("server." + countryCode + ".port"); 
但我也没有找到一种方法来做到这一点


谢谢。

使用
system\getenv
可以非常轻松地读取系统环境变量。至于您想要实现什么,我想这就是您想要的:是的,读取属性文件很容易,读取环境变量也很容易。我正试图找到一种方法来实现“spring魔法”,即从多个具有不同优先级的源和位置读取变量。