2017-03-16 23 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] + ")"); 
     } 
    } 
}