code: protected Resource[] findPathMatchingResources(String locationPattern) throws IOException {
  		String rootDirPath = determineRootDir(locationPattern);
  		String subPattern = locationPattern.substring(rootDirPath.length());
  		Resource[] rootDirResources = getResources(rootDirPath);
  		Set<Resource> result = new LinkedHashSet<Resource>(16);
  		for (Resource rootDirResource : rootDirResources) {
  			rootDirResource = resolveRootDirResource(rootDirResource);
  			if (rootDirResource.getURL().getProtocol().startsWith(ResourceUtils.URL_PROTOCOL_VFS)) {
  				result.addAll(VfsResourceMatchingDelegate.findMatchingResources(rootDirResource, subPattern, getPathMatcher()));
  			}
  			else if (isJarResource(rootDirResource)) {
  				result.addAll(doFindPathMatchingJarResources(rootDirResource, subPattern));
  			}
  			else {
  				result.addAll(doFindPathMatchingFileResources(rootDirResource, subPattern));
  			}
  		}
  		if (logger.isDebugEnabled()) {
  			logger.debug("Resolved location pattern [" + locationPattern + "] to resources " + result);
  		}
  		return result.toArray(new Resource[result.size()]);
  	}
docs: Find all resources that match the given location pattern via the
  Ant-style PathMatcher. Supports resources in jar files and zip files
  and in the file system.
  @param locationPattern the location pattern to match
  @return the result as Resource array
  @throws IOException in case of I/O errors
  @see #doFindPathMatchingJarResources
  @see #doFindPathMatchingFileResources