Spring ResourceLoader接口

ResourceLoader接口的主要作用是进行org.springframework.core.io.ResourceLoader对象实例化,这个接口的定义如下:

           读取指定的资源信息:public getResource Resource getResource(String location);

           取得类加载器:public getClassLoader ClassLoader getClassLoader()

ResorceLoader是一个接口,于是要使用这个接口必须知道它对应的子类:org.springframework.core.io.DefaultResourceLoader,利用这个子类就可以实现ResourceLoader接口的实例化,但是现在整个资源操作的问题并不在于Resource或者是ResourceLoader接口,以及其一堆的子类,而关键性的问题在于这个定位的字符串。

        文件读取资源:"file:路径";

        CLASSPATH读取:"claspath:路径";

        网络读取:"http://操作路径";

1.范例:进行文件读取

public class FileReSourceLoader {

	public static void main(String[] args) throws Exception{
		ResourceLoader rlLoader = new DefaultResourceLoader();
        Resource source = rlLoader.getResource("file:E:" + File.separator + "jianzhu.txt");
        
        System.out.println("数据长度" + source.contentLength());
        Scanner scanner = new Scanner(source.getInputStream());
        while(scanner.hasNext()) {
            System.out.println(scanner.next());
        }
    }

}

输出结果:数据长度4      halo

只是写了一个字符串,而后就可以进行读取了

 

2.范例:读取CLASSPATH的路径

public class FileReSourceLoader {

	public static void main(String[] args) throws Exception{
		ResourceLoader rlLoader = new DefaultResourceLoader();
        Resource source = rlLoader.getResource("classpath:applicationContext.xml");
        
        System.out.println("数据长度" + source.contentLength());
        Scanner scanner = new Scanner(source.getInputStream());
        while(scanner.hasNext()) {
            System.out.println(scanner.next());
        }
	}

}

输出结果:

数据长度349



3.范例:读取网络资源

public class HttpResourceLoader {

	public static void main(String[] args) throws Exception{
		ResourceLoader rlLoader = new DefaultResourceLoader();
        Resource source = rlLoader.getResource("http://localhost:8080/ROOT/jianzhu.txt");
        
        System.out.println("数据长度" + source.contentLength());
        Scanner scanner = new Scanner(source.getInputStream());
        while(scanner.hasNext()) {
            System.out.println(scanner.next());
        }
	}
}

输出结果:数据长度5      halo1

所有读取的操作过程之中,可以清楚感受到,都是利用了字符串来进行的资源定位,也就是在整个Spring里面核心的设计思想就是:就是利用合理的字符串格式来进行更加复杂的操作。

Spring ResourceLoader接口_第1张图片

 

你可能感兴趣的:(#,spring全家桶,大学与Java那些年)