Как загрузить все файлы .properties в приложении, начиная с определенного пакета? - PullRequest
1 голос
/ 04 августа 2011

Я хотел бы загрузить все все .properties файлы, начиная с определенного уровня пакета.Все в этом пакете и любые дочерние пакеты должны быть загружены.Так, например, если я указал my.foo в качестве начального пакета, должны быть выбраны my.foo.MyProperties.properties и my.foo.bar.MyOtherProperties.properties.Я бы предпочел (и приму) решение, которое использует classpath и вошло во все доступные .jars, но я также опишу решение на основе файлов.

1 Ответ

3 голосов
/ 04 августа 2011

Используйте Отражения . Код должен быть примерно таким,

    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());

Посмотрите на код теста , чтобы найти больше примеров.

...