Spring返回FileSystemResource而不是ClassPathResource

4
我想获取类路径下的文件列表,但是Spring返回给我一个FileSystemResources的Resource[]数组而不是ClassPathResources。以下是代码示例:

PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
Resource [] resources = resolver.getResources("classpath*:my/package/**/*.xml");

我也尝试过这个方法:

context.getResources("classpath*:my/package/**/*.xml");

返回结果:
数组返回的是一堆绝对路径的file:// URL,但我实际想要的是classpath: URL。我做错了什么?
这是我最终要构建的内容:
/my/package/one.xml
/my/package/two.xml

我得到的是这个:

而我得到的是这样的:

file:/C:/eclipse/.../my/package/one.xml

2
你为什么要在意呢?为什么你的代码依赖于classpath:资源,而不是使用通用的Resource接口呢? - skaffman
你正在获取这个URL:"file:/C:/eclipse/.../my/package/one.xml"。但你从哪里获取这个URL?返回的资源实现类型是什么?因为你可以在URL中使用带有前缀文件:的类路径资源。关键字classpath只用于Spring。 - chalimartines
1个回答

0

FileSystemResource和ClassPathResource都返回绝对资源路径。 FileSystemResource在文件系统中查找它C:/eclipse/.../my/package/one.xml。 ClassPathResource在/WEB-INF/classes内的类路径文件中查找资源。我不明白为什么你需要返回classpath:path,但是你仍然可以通过子字符串获取它的绝对路径。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接