入门 14 - 资源文件的取得

 首先来看看ApplicationContext接口的实作,之前我们使用了ClassPathXmlApplicationContext,这会读取CLASSPATH根目录(加上指定路径)中可获取的资源文件。
 我们也可以使用FileSystemXmllApplicationContext,这会使用相对于工作根目录的档案路径来取得资源文件,例如若您的工 作目录是"c:\workspace\springtest\",而您在程序中指定了"bean.xml",则程序会至您的"c:\workspace\ springtest\bean.xml"找您指定的资源文件,同理,若您指定了"conf\somepro.properties",则会至"c:\ workspace\springtest\conf\somepro.properties"中找您指定的档案。
 对于Web应用程序来说,您可以使用XmlWebApplicationContext,这会以您的Web应用程序作为相对路径的起点,例如若指定 "WEB-INF\conf\admin.properties",而您的Web应用程序是springweb,则会至"springweb\WEB- INF\conf\admin.properties"找您的档案。
 Spring提供了对资源文件的泛型存取(generic access),而这正是一个好的应用程序在存取资源文件时最重要的特性,除了上面的方案之外,ApplicationContext继承了 ResourceLoader接口,您可以使用getResource()方法并指定资源文件的url来取得一个实作Resource接口的实例,例如:

Resource resource = context.getResource("classpath:admin.properties");


 "classpath:"是Spring自订的url虚拟协定,这会取回一个 org.springframework.core.io.ClassPathResource实例,资源文件是位于CLASSPATH根目录中,您也可以指定标准的url,像是"file:" 或"http:",例如:

Resource resource = context.getResource("file:c:/workspace/springtest/conf/admin.properties");


 这会返回一个org.springframework.core.io.FileSystemResource实例,或者您可以如下指定来返回一个ServletContextResource实例:

Resource resource = context.getResource("WEB-INF/conf/admin.properties");


 取得一个实作Resource接口的实例之后,您可以使用getFile()、getInputStream()等方式来操作或取得资源文件的相关资 源,Resource接口的实例只是资源文件的一个抽象代表,指指定的资源文件实际上可能并不存在,您可以使用exists()方法来进行测试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值