2011-02-25 4 views
12

아파치 공통 설정 클래스를 사용하여로드하는 메인 conf 파일이 있습니다. 사용자가 conf 파일을 지정할 수있는 요구 사항이 있으며 해당 파일의 값이 주 conf의 값보다 우선합니다.아파치 공통 설정 (java)을 사용하여 여러 설정 파일을 불러오는 방법

이 문제를 해결하기 위해 apache 공통 구성 클래스 또는 다른 오픈 소스 클래스에서 어떻게 할 수 있는지 제안 해주십시오.

CompositeConfiguration config = new CompositeConfiguration(); 
config.addConfiguration(new PropertiesConfiguration("user.properties")); 
config.addConfiguration(
    new PropertiesConfiguration("application.properties")); 
// user preferences have precedence over application preferences 

참조 :

답변

12

에서

덕분에 나는 당신이 the mechanism described here 비슷한을 원한다고 생각 cfg4j으로 :

// Specify which files to load. Configuration from both files will be merged. 
ConfigFilesProvider configFilesProvider =() -> Arrays.asList(new File("application.properties"), new File("otherConfig.properties")); 

// Use local files as configuration store 
ConfigurationSource source = new FilesConfigurationSource(configFilesProvider); 

다음 속성을 얻을 수있는 표준적인 방법을 사용합니다.

+0

"loader.properties"파일에 include = a.properties 및 include = b.properties라는 두 줄이 있습니다. 여전히 a.properties는 포함하지만 b.properties는 포함하지 않습니다. PropertyConfiguration을 사용하여 "loader.properties"파일을로드했습니다. 왜 그런지 알아? – Sujoy