2017-03-16 22 views
-1

我正在使用spring框架4.3.5。作为数组的弹簧属性文件值

以下是我在config.properties值

purgefile.server1.ip=host1.com 
purgefile.server1.username=user1 
purgefile.server1.password=pwd1 
purgefile.server1.script=$HOME/purge.sh 

像这样有16个服务器

我需要所有这一切都装入一个2维数组和访问它像

server[0][0] --> ip 
server[0][1] --> username 
server[0][2] --> password 
server[0][3] --> script 

有什么建议吗?

+2

这可以用“代码”完成。你的在哪里? – f1sh

回答

0

@ f1sh我想出了这个。但不知道这是否是正确的做法。

public class PurgeFileConfig { 
    public static void main(String[] args) throws Exception { 
     Resource resource = new ClassPathResource("/config.properties"); 
     Properties props = PropertiesLoaderUtils.loadProperties(resource); 
     int size = Integer.parseInt(props.getProperty("purgefile.server.count")); 

     String [] [] purgeFile = new String [size][4]; 

     for (Entry<?, ?> entry : props.entrySet()) { 
      String key = (String) entry.getKey(); 
      String value = (String) entry.getValue(); 
      if (key.startsWith("purgefile.")) { 
       String [] keyList = key.split("\\."); 
       if (!keyList[2].equals("count")) { 
        int idx = Integer.parseInt(keyList[2])-1; 
        if (keyList[3].equals("ip")) 
         purgeFile[idx][0] = value.trim(); 
        else if (keyList[3].equals("username")) 
         purgeFile[idx][1] = value.trim(); 
        else if (keyList[3].equals("password")) 
         purgeFile[idx][2] = value.trim(); 
        else if (keyList[3].equals("script")) 
         purgeFile[idx][3] = value.trim(); 
       } 
      } 
     } 

     for (String[] temp : purgeFile) { 
      System.out.println("(" + temp[0] + ")(" + temp[1] + ")(" + temp[2] + ")(" + temp[3] + ")"); 
     } 
    } 
}