Spring學習(九)資源訪問接口Resource

JDK所提供的訪問資源的類並不能很好的滿足各種底層資源的訪問需求,比如缺少從類路徑或者從web容器的上下文中獲取資源的操作類。因此,Spring設計了一個Resource接口,它爲應用提供了更強大的訪問底層資源的能力。該接口擁有對應不同資源類型的實現類。

那麼先來了解一下resource資源中的主要方法:
1.    boolean exists():判斷資源是否存在
2.    boolean isOpen() :判斷資源是否已經打開
3.    URL getURL() :如果底層資源可以表示成url,那麼該方法返回對應的url對象
4.    File getFile() :如果底層資源對應的是一個文件,那麼返回對應的文件對象
5.    InputStream getInputStream():返回資源對應的輸入流

Spring框架使用resource來裝載各種資源,這些資源包括:配置文件資源、國際化屬性文件資源等。

那麼下面我們來了解以下resource的具體實現類:
1.    ByteArrayResource :二進制數組表示資源
2.    ClassPathResource :類路徑下面的資源
3.    FileSystemResource :文件系統資源,以文件系統路徑的方式來表示
4.    InputStreamResource :輸入流資源
5.    ServletContextResource :web容器上下文中的資源,負責以以相對於web的應用根目錄的路徑來加載資源。支持以流和url的方式來進行訪問。在war包解包的情況下也可以通過file的方式來進行訪問。該類還可以從jar包中來直接訪問資源。
6.    UrlResource:封裝了java.net.url,他使用戶可以訪問任何可以通過url訪問的資源。如文件系統的資源、http的資源、ftp的資源等
那麼有了以上的這幾個抽象的資源類以後,我們就可以將Spring的配置信息放置在任何地方。比如數據庫或者LDAP當中。

爲了訪問不同類型的資源,必須使用相應的Resource實現類,這是比較麻煩的,Spring提供了一個強大的加載資源的機制,他不但能夠通過classpath、file等不同地址前綴來識別不同的資源類型,而且還支持Ant風格的帶通配符的資源地址。
那麼首先我們先來了解下Spring支持哪些不同類型的資源地址前綴:
1.    classpath  classpath:com/wang/bean.xml
2.    File file:/com/wang/bean.xml(可以採用絕對或者相對的路徑)
3.    http:// http://www.wang.com/bean.xml
4.    ftp ftp://www.wang.com/bean.xml
5.    無前綴 com/wang/bean.xml
Ant風格的匹配符介紹:
1.    ?:匹配文件名中的一個字符
2.    *:匹配文件名中的任意字符
3.    **:匹配多層路徑
Ant風格的資源路徑示例:
1.    Classpath:com/t*st.xml
2.    File:D:/conf/*.xml
3.    Classpath:com/**/test.xml
4.    Classpath:org/springframework/**/*.xml
發佈了68 篇原創文章 · 獲贊 132 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章