官术网_书友最值得收藏!

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中包含了更多的處理信息。

主站蜘蛛池模板: 永城市| 中江县| 长宁区| 灯塔市| 三明市| 象州县| 四会市| 中江县| 贵德县| 邢台县| 正安县| 富顺县| 封开县| 茂名市| 阿拉尔市| 响水县| 惠东县| 凤山市| 婺源县| 栾川县| 安阳县| 武定县| 名山县| 基隆市| 香港 | 宁安市| 奉化市| 阜平县| 太白县| 深泽县| 林周县| 和平县| 保定市| 体育| 罗田县| 越西县| 措美县| 弥渡县| 沾益县| 稷山县| 池州市|