2013-04-10 3 views
0

일부 규칙 (기존 키워드 또는 정규식)에 따라 메시지를 필터링하는 앱이 있습니다. 이러한 규칙은 .properties 파일에 저장됩니다 (영구적이어야하므로). 이 파일에서 데이터를 읽는 방법을 알아 냈습니다. 여기에 코드의 일부가 나와 있습니다.apache.commons.configuration을 사용하여 .properties 파일을 변경하는 방법

public class Config { 

    private static final Config ourInstance = new Config(); 
    private static final CompositeConfiguration prop = new CompositeConfiguration(); 

    public static Config getInstance() { 
     return ourInstance; 
    } 

    public Config(){ 
    } 

    public synchronized void load() { 
     try { 
      prop.addConfiguration(new SystemConfiguration()); 

      System.out.println("Loading /rules.properties"); 
      final PropertiesConfiguration p = new PropertiesConfiguration(); 
      p.setPath("/home/mikhail/bzrrep/DLP/DLPServer/src/main/resources/rules.properties"); 
      p.load(); 
      prop.addConfiguration(p); 

     } catch (ConfigurationException e) { 
      e.printStackTrace(); 
     } 

     final int processors = prop.getInt("server.processors", 1); 

     // If you don't see this line - likely config name is wrong 
     System.out.println("Using processors:" + processors); 
    } 

    public void setKeyword(String customerId, String keyword){    
    }  
    public void setRegexp(String customerId, String regexp) 
    {} 
} 

제가 알기로 일부 속성에 값을 추가 할 것입니다. 다음은 .properties 파일 자체입니다.

사용자가이 구성에 키워드와 정규 표현식을 추가 할 수있는 GUI가 있습니다. 그래서, 어떻게 setKeyword와 setRegexp 메소드를 구현할 것인가?

답변

1

내가 찾은 가장 쉬운 방법은 String []에 속성의 현재 값을 읽고 거기에 새로운 값을 추가하고 속성을 설정하는 것입니다. props.setProperty(fieldName, values);