一 . 概述
在前面,我们看到了IOC容器的一般使用,但是有一点需要我们注意,spring通过上面能力将各种配置文件读取到的呢?
二 .资源访问
资源存在的地点很多,也就造成了资源的使用方式很不同.在使用资源之前,我们首先需要获取资源.
spring将资源定义为Resource.
其中Reource继承了InputStreamReource.
从上面的图中,我们看到了一个最令我们感兴趣的方法就是getInputSream()方法.
也就是说,我们获取到了Reource就可以将其转换为一个流的形式进行操作.
三 .Resource的实现类
ClassPathResource
FileSystemResource
等等,spring几乎将所有的Reource的情况都想到了.我们可以通过这些实现类获取各种资源.
四 .问题
spring讲究的是面向接口编程,也就是说不要过于关注实现.
对于Reource来说也是一样的,spring提供了ReourceLoader来完成这个任务.
我们看到了getResource的方法,也就是说我们只需要一个路径参数就能获取到Resource对象.
那么,我们怎么描述各种不同的资源呢?
spring给提供了资源描述符的概念,如classpath: file等.
这里不说这些了,因为我们常常就在使用.
五 .PathMatchingResourcePatternResolver
这个类是spring给提供了标准ResourceLoader的实现类,可以完成资源描述符的解析.
下面通过一个例子完成演示:
@Test public void test() throws Exception { PathMatchingResourcePatternResolver loader = new PathMatchingResourcePatternResolver(); Resource resource = loader.getResource("aa.txt"); String copyToString = FileCopyUtils.copyToString(new FileReader(resource.getFile())); System.out.println(copyToString); }
我们发现现在我们使用各种资源简直方便极了,几乎各种资源都能完成了.