Spring 资源加载提供了一个很是通用的方法getResource()
,用于从文件系统,类路径,URL等位置获取资源(文本文件,媒体文件,图像文件...)。能够从Spring上下文中获取getResource()
方法。app
Resource resource = appContext.getResource("file:c:\\testing.txt");
Resource resource = appContext.getResource("url:http://www.yourdomain.com/testing.txt");
Resource resource = appContext.getResource("classpath:test/testing.txt");
你只需指定资源的位置,Spring将处理并返回一个Resourcedom
因为bean没能访问应用程序上下文的访问权限,因此须要实现ResourceLoaderAware
来保存一个ResourceLoader
实例来加载Resourcethis
@Service public class CustomerService implements ResourceLoaderAware { private ResourceLoader resourceLoader; public void setResourceLoader(ResourceLoader resourceLoader) { this.resourceLoader = resourceLoader; } public Resource getResource(String location){ return resourceLoader.getResource(location); } }
这样经过CustomerService
保持了一个ResourceLoader
的实例,经过ResourceLoader
提供的getReource()
方法来加载Resource。url
若是没有这个 getResource()
方法,您将须要使用不一样的解决方案来处理不一样的资源,例如文件系统资源的File对象,URL资源的URL对象。Spring真的用这个超级通用的 getResource()
方法作得很好,它确实节省了咱们处理资源的时间。spa