Ответ 1
Вам нужно ClassLoader.getResources(name)
(или статической версии ClassLoader.getSystemResources(name)
).
Но, к сожалению, существует известная проблема с ресурсами, которые не находятся в "каталоге". Например. foo/bar.txt
отлично, но bar.txt
может быть проблемой. Это хорошо описано в справочнике Spring, хотя это никоим образом не проблема Spring.
Update:
Здесь вспомогательный метод, который возвращает список InputStreams:
public static List<InputStream> loadResources(
final String name, final ClassLoader classLoader) throws IOException {
final List<InputStream> list = new ArrayList<InputStream>();
final Enumeration<URL> systemResources =
(classLoader == null ? ClassLoader.getSystemClassLoader() : classLoader)
.getResources(name);
while (systemResources.hasMoreElements()) {
list.add(systemResources.nextElement().openStream());
}
return list;
}
Применение:
List<InputStream> resources = loadResources("config.properties", classLoader);
// or:
List<InputStream> resources = loadResources("config.properties", null);