2011-08-04 5 views
1

특정 패키지 레벨에서 시작하는 모든 .properties 파일을 모두로드하고 싶습니다. 해당 패키지 및 모든 하위 패키지에있는 모든 항목을로드해야합니다. 예를 들어 my.foo를 시작 패키지로 지정한 경우 my.foo.MyProperties.properties 및 my.foo.bar.MyOtherProperties.properties를 선택해야합니다. 클래스 패스를 사용하고 사용 가능한 모든 .jars를 사용하는 솔루션을 선호합니다 (또한 받아 들일 수 있습니다). 그러나 파일 기반 솔루션도 upvote 것입니다.특정 패키지에서 시작하여 애플리케이션의 모든 .properties 파일을로드하는 방법은 무엇입니까?

답변

3

reflections을 사용하십시오. 코드는 다음과 같아야합니다.

Predicate<String> filter = new FilterBuilder().include(".*\\.properties"); 
    Reflections reflections = new Reflections(new ConfigurationBuilder() 
      .filterInputsBy(filter) 
      .setScanners(new ResourcesScanner()) 
      .setUrls(asList(ClasspathHelper.forJavaClassPath()))); 
    System.out.println(reflections.getStore().get(ResourcesScanner.class).keySet()); 

자세한 예제는 test code을 참조하십시오.

+0

매끄러운 외모, 감사합니다, 시도해 보겠습니다. – Peter

+0

매력처럼 작동합니다. – Peter

관련 문제