2015-12-04 85 views
2

是否可以从属性文件中获取属性,并将属性分为多个部分?如果是这样,怎么样?如何从文件中读取弹簧属性(按部分)

Ex。 props.properties

[section1] 
a=1 
b=2 
c=3 

[section2] 
a=4 
b=5 
c=6 

如何 'SECTION1' 使用弹簧选择?在代码中,如何从section1读取属性'a'。有没有什么可以让程序员选择section1然后属性a?

编辑:另请注意,两节中的属性名称都是相同的。 section1具有属性'a',而section2也具有属性'a'。

编辑2:我正在寻找的是一种创建地图的方法。例如,properties.get(“section1”)。get(“a”)应该返回1,而properties.get(“section2”)。get(“a”)应该返回4.我使用的数据包含国家和各省。因此,对于“国家1”,有些省份用数字表示:1 = AL,2 = AK等;对于“国家2”,还有一些省份用数字表示:1 = AB,2 = BC等。我希望能够基于国家获得普罗旺斯:properties.get(“country 1”)。get(“1 “)返回AL,而properties.get(”country 2“)。get(”1“)返回AB。使用前缀不允许我动态选择国家,更正吗?

回答

1

如果您在所有属性中添加了节名称,例如

section1.a=1 
section1.b=2 


... 
section2.a=4 
section2.b=5 

然后用@ConfigurationProperties(prefix="section1")

+0

这是否允许我在同一个类文件中的section2和section1之间切换? – Ali

0

您可以用Spring配置文件并为每个环境有不同的属性文件。像

东西application-dev.properties

a=1 
b=2 
c=3 

application-prod.properties

a=4 
b=5 
c=6 

在这里有使用具有enviroments特性的两个示例

http://examples.javacodegeeks.com/enterprise-java/spring/load-environment-configurations-and-properties-with-spring-example/

http://www.mkyong.com/spring/spring-propertysources-example/

+0

感谢您的回复@reos。我想将这些属性保留在同一个文件中,因为在所有环境中都需要两个“部分”。 – Ali