b spring 之资源加载器--resourceLoader

–> go to 总目录

2.4 Resourceloader

ResourceLoader 接口被用来加载实现了Resource接口的实例。
接口定义
在这里插入图片描述
所有应用程序上下文都实现ResourceLoader接口。因此,所有应用程序上下文都可用于获取Resource实例。

当您在特定的应用程序上下文中调用getResource(),并且指定的位置路径没有特定的前缀时,您将获得适合该特定应用程序上下文的Resource类型。例如,假定针对ClassPathXmlApplicationContext实例执行了以下代码片段:
在这里插入图片描述
针对ClassPathXmlApplicationContext,该代码返回ClassPathResource。如果对FileSystemXmlApplicationContext实例执行了相同的方法,则它将返回FileSystemResource。对于WebApplicationContext,它将返回ServletContextResource。类似地,它将为每个上下文返回适当的对象。

结果,您可以以适合特定应用程序上下文的方式加载资源。

另一方面,您也可以通过指定特殊的classpath:前缀来强制使用ClassPathResource,而与应用程序上下文类型无关,如下例所示:
在这里插入图片描述
在这里插入图片描述

2.5 The ResourceLoaderAware interface

ResourceLoaderAware 接口可以提供ResourceLoader实例,实现它即可。
在这里插入图片描述
发现机制
当类实现ResourceLoaderAware并部署到应用程序上下文中(作为Spring托管的bean)时,该类被应用程序上下文识别为ResourceLoaderAware。然后,应用程序上下文调用setResourceLoader(ResourceLoader),将自身作为参数提供(请记住,Spring中的所有应用程序上下文均实现ResourceLoader接口)。
推荐使用

由于ApplicationContext是ResourceLoader,因此Bean也可以实现ApplicationContextAware接口,并直接使用提供的应用程序上下文来加载资源。但是,通常,如果需要的话,最好使用专门的ResourceLoader接口。该代码将仅耦合到资源加载接口(可以视为实用程序接口),而不耦合到整个Spring Applic

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值