- 名師講壇:Spring實戰開發(Redis+SpringDataJPA+SpringMVC+SpringSecurity)
- 李興華
- 549字
- 2020-04-24 14:20:47
4.3 ResourceLoader接口
在Spring設計的時候,已經明確地將所有資源統一規劃為由Resource接口對象負責讀取。但在使用過程中卻需要面臨一個問題,也是Spring設計中強調的一個核心思想——解耦合。之前編寫的代碼都直接采用了子類為父接口實例化的模式來處理,很明顯這樣的設計是不合理的。為了解決Resource讀取不同資源的問題,專門又提供了一個org.springframework.core.io.ResourceLoader接口。該接口提供兩個處理方法,如表4-2所示。
表4-2 ResourceLoader接口方法

通過表4-2可以發現,ResourceLoader接口中提供的getResource方法可以直接返回Resource接口實例,關系如圖4-2所示。最關鍵的是,在調用此方法時可以通過字符串傳遞訪問路徑。常用的訪問路徑標記如表4-3所示。
表4-3 資源定位


圖4-2 ResourceLoader結構
1.【mldnspring-base模塊】通過ResouceLoader讀取文件資源。

本程序使用DefaultResourceLoader子類為ResourceLoader接口進行實例化,隨后通過file:d:/mldn.txt字符串實現了磁盤資源的加載。
2.【mldnspring-base模塊】實現網絡資源加載。
Resource resource = resourceLoader.getResource("http://localhost/mldn/mldn-data.txt") ;
3.【mldnspring-base模塊】實現CLASSPATH資源加載。
Resource resource = resourceLoader.getResource("classpath:spring/spring-base.xml") ;
通過以上幾種資源注入,可以發現整體設計中,在使用resourceloader接口獲取資源時,將自動根據資源定位實現不同的讀取,這樣的處理不僅加強了字符串的功能,也避免了接口與子類之間的耦合。
提示:測試類中的配置文件加載。
對于Spring測試類,讀者可以發現在類定義上使用了以下的注解:
@ContextConfiguration(locations = { "classpath:spring/spring-base.xml" })
此時采用的就是資源定位字符串實現的配置文件加載,可以說,正是Spring對資源訪問的統一設計,才使得字符串在Spring中包含了更多的處理信息。
- 精通Nginx(第2版)
- Kali Linux Web Penetration Testing Cookbook
- C語言程序設計
- Mastering Ext JS
- Node.js Design Patterns
- Express Web Application Development
- Create React App 2 Quick Start Guide
- INSTANT Yii 1.1 Application Development Starter
- Getting Started with Nano Server
- Python函數式編程(第2版)
- Data Science Algorithms in a Week
- Advanced Python Programming
- Java Web開發基礎與案例教程
- Java面向對象程序設計教程
- Cloud Development andDeployment with CloudBees