2011-08-04 19 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

関連する問題