Spring 加載Resource

Spring 資源加載提供了一個很是通用的方法getResource(),用於從文件系統,類路徑,URL等位置獲取資源(文本文件,媒體文件,圖像文件...)。能夠從Spring上下文中獲取getResource()方法。app

1. 文件系統

Resource resource = appContext.getResource("file:c:\\testing.txt");

2. URL路徑

Resource resource = appContext.getResource("url:http://www.yourdomain.com/testing.txt");

3. 類路徑

Resource resource = appContext.getResource("classpath:test/testing.txt");

你只需指定資源的位置,Spring將處理並返回一個Resourcedom

Bean資源加載器

因爲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

相關文章
相關標籤/搜索