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