You need ClassLoader.getResources(name)
(or the static version ClassLoader.getSystemResources(name)).
But unfortunately there's a known issue with resources that are not inside a "directory". E.g. foo/bar.txt is fine, but bar.txt can be a problem. This is described well in the Spring Reference, although it is by no means a Spring-specific problem.
Update:
Here's a helper method that returns a list of 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; }
Usage:
List<InputStream> resources = loadResources("config.properties", classLoader); // or: List<InputStream> resources = loadResources("config.properties", null);