《Pro Spring》学习笔记之Application资源访问

本文介绍了一个简单的Spring应用程序,演示了如何使用Spring框架加载不同类型的资源,包括通过HTTP、File及Classpath三种协议获取资源文件,并展示了如何读取这些资源的内容。

代码比较简单,先陈列如下:

 

package ch5.applicationContext.Resource;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.core.io.Resource;

public class TestSpring {


    
public static void main(String[] args) throws IOException{
         String realpath
="";
        
           
//加载配置项
           realpath=System.getProperty("user.dir")+File.separator+"src"+File.separator+"ch5/applicationContext/Resource"+File.separator+"applicationContext.xml";
           
           ApplicationContext applicationContext
=new FileSystemXmlApplicationContext(realpath);
           Resource res1
=applicationContext.getResource("http://www.sohu.com");
           Resource res2
=applicationContext.getResource("file:///c:/aa.txt");
           Resource res3
=applicationContext.getResource("classpath:ch5/applicationContext/Resource/file.txt");
           displayInfo(res1);
           displayInfo(res2);
           displayInfo(res3);
          
    }

    
public static void displayInfo(Resource res) throws IOException{
        String s
="";
        DataInputStream in5 
=
            
new DataInputStream(
            
new BufferedInputStream(res.getInputStream()));
        
        BufferedReader in5br 
=
            
new BufferedReader(
            
new InputStreamReader(in5));
        
        
while((s=in5br.readLine())!=null){
              System.out.println(s);
        }

    }


}

 运行结果就是把三种协议解析出的内容打印出来

Spring支持三种协议File,http,Classpath,其中file和http都返回一个UrlResource实例,我们可以使用getFile,getInputStream方法得到文件流对象,进而解析,但是,当使用http协议时候,不能使用getFile方法,会有FileNotFoundException异常,建议之用getFileInputStream访问资源内容,因为他最有可能对所有可能存在的资源类型都有效

本文中的加载配置文件仅供延时,没有实际意义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值