String源碼解讀之Resource接口


  • 一、前言
我們都知道java自身也提供了底層資源的方法,如(java.net.URL,File)等, 但是java所提供的並不支持訪問web容器資源的類,因此spring在此次方面做了強大的擴展,設計了Resource接口,提供了更強的底層資源訪問能力,也是spring重要的輔助類。Resource可以在完全不依賴spring容易的情況下運行,是個比較強大的資源訪問類。

  • 二、Resource接口結構詳解
Resource類關係圖(只列出常用)


Resource 接口主要提供瞭如下方法:
boolean exists();  // 資源是否存在
boolean isReadable();  //資源是否可讀取

boolean isOpen();  //資源是否打開

URL getURL() throws IOException; //如果底層可以表示成URL,則返回URL對象

URI getURI() throws IOException;    //同上

File getFile() throws IOException; //如果是一個文件資源,則返回一個File對象

InputStream getInputStream() throws IOException;   //這個方法繼承至InputStreamSource  主要用於返回資源的輸入流

long contentLength() throws IOException;  //獲取文件的長度

long lastModified() throws IOException;   //獲取文件的最後修改時間

Resource createRelative(String relativePath) throws IOException;  //創建一個Resource對象,根據資源地址
String getFilename(); //獲取文件名稱

常用類解讀:
ByteArrayResource:二進制數組表示的資源,可通過文件二進制流構造Resource對象
FileSystemResource:文件系統資源訪問,和jdk File對象類似,需通過系統路勁進行資源訪問

ClassPathResource:可通過類路勁訪問資源,相對於jdk最大的擴展,可通過classpath方式訪問資源

ServletContextResource: 爲訪問web容器上下文而設計的類,負責以相對於web根路徑的資源訪問,支持流和URL方式進行訪問,也可以訪問jar包中得資源







發佈了12 篇原創文章 · 獲贊 22 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章