Spring Core

    從Spring框架中咱們知道,Core包含Spring的核心工具類,是其餘組件的基本核心,其中最重要的是它定義了資源的訪問方式。
    Resource接口封裝了各類可能的資源類型,對使用者來講屏蔽了文件類型的不一樣。ResourceLoader接口屏蔽了全部的資源加載者的差別,只須要實現這個接口就能夠加載全部的資源, 它的默認實現是DefaultResourceLoader。

關鍵類結構和實現:數組

  1. Resource
    Resource是對資源文件的統一抽象。
    Resource結構如圖所示:

    1) AbstractResource實現Resource接口,實現通用的方法。
    2) ContextResource用於擴展來自Context的資源文件。
    3) FileSystemResource可用來獲取文件系統裏面的資源。
    4) InputStreamResource是針對於輸入流封裝的資源,它的構建須要一個輸入流。
    5) ByteArrayResource是針對於字節數組封裝的資源,它的構建須要一個字節數組。
    6) ClassPathResource可用來獲取類路徑下的資源文件。
    7) UrlResource可用來表明URL對應的資源,它對URL作了一個簡單的封裝。
    8) ServletContextResource是針對於ServletContext封裝的資源,用於訪問ServletContext環境下的資源。ServletContextResource持有一個ServletContext的引用,其底層是經過ServletContext的getResource()方法和getResourceAsStream()方法來獲取資源的。
     
  2. ResourceLoader
    ResourceLoader是資源加載器,經過傳入路徑生成Resource。
    ResourceLoader結構如圖所示:
    1) DefaultResourceLoader是ResourceLoader接口的默認實現,getResource經過判斷路徑前綴返回不一樣的Resource,getResourceByPath默認返回ClassPathContextResource。 2) FileSystemResourceLoader繼承DefaultResourceLoader,加載FileSystemResource,getResourceByPath默認返回FileSystemContextResource。 3) ServletContextResourceLoader繼承DefaultResourceLoader,加載ServletContextResource, getResourceByPath默認返回ServletContextResource。 4) ResourcePatternResolver根據路徑模式匹配多個路徑,將這些路徑對應的資源生成對應的Resource。 5) PathMatchingResourcePatternResolver實現了ResourcePatternResolver,PathMatchingResourcePatternResolver實現路徑模式匹配,內部則使用代理DefaultResourceLoader的方式實現資源加載功能。
相關文章
相關標籤/搜索