java属性文件中的多个配置块

时间:2015-11-27 06:01:56

标签: java spring properties-file

我需要在Spring的单个.properties文件中定义多个配置块。目前我有多个.properties文件,如下所示:

one.properties:

publishing.channel=ftp
ftp.user=user1
ftp.password=pass1
ftp.host=abc.xyz.com
ftp.port=21

two.properties

publishing.channel=ftp
ftp.user=user2
ftp.password=pass2
ftp.host=def.xyz.com
ftp.port=21

我现在需要的是只定义一个.properties文件并在其中添加所有配置块,如下所示:

publishing.channel=ftp
ftp.user=user1
ftp.password=pass1
ftp.host=abc.xyz.com
ftp.port=21

然后另一个

publishing.channel=ftp
ftp.user=user2
ftp.password=pass2
ftp.host=cdf.xyz.com
ftp.port=21

也可能是http

publishing.channel=http
http.user=user2
http.password=pass2
http.host=cdf.xyz.com

问题是当我放置这样的多个属性块时,我无法区分代码,因为我的bean方法(例如getHost())只会获取属性文件中最后声明的一个。我不想创建许多变量,如host1,host2,host3等,因为如果添加了另一个属性块,则需要修改它们。我怎样才能使它成为通用的?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以使用Apache Commons Configuration中的PropertiesConfiguration,然后访问相同密钥的所有值并添加逻辑以获取所需的值。

使用getStringArray(key)方法或getList(key)方法访问所有值。