摘要:將絕對路徑下的資源解釋為相對路徑,給相應的類加載定位的資源的實現,支持路徑或協議下的文件用于加載或的路徑資源類的抽象基類。一個實現描述資源但不是一個真實資源的實現。
Spring的配置文件是通過ClassPathResource來進行封裝的,在Java中,不同的資源抽象成URL,通過注冊不同的handle來處理不同的URL獲取邏輯,一般的handle類型通過使用不同的前綴來來識別,比如file;http等,可以注冊自己的URLStreamHandle來處理特定的前綴的文件,然而這需要檢查當前的資源是否存在等。
對于不同的文件,Spring有不同的實現方式。
比如說,在系統中,我們可以使用
Resource re = new ClassPathResource("bean.xml");
InputStream in = re.getInputStream();得到InputStream的實例之后,就可以使用Resource及其子類提供的方法,進行相應的功能的開發了。
ClassPathResource : 類路徑下的資源文件,使用classLoader或class加載資源,
支持文件系統下的資源以類路徑,URL等方式加載資源,但是不支持jar包里面的資源。
ClassRelativeResourceLoader:將絕對路徑下的資源解釋為相對路徑,給相應的類加載
UrlResource:URL定位的Resource資源的實現,支持URL路徑或protocol協議下的文件
AbstractFileResolvingResource:用于加載UrlResource或ClassPathResource的路徑
資源類的抽象基類。
DescriptiveResource:一個實現描述資源但不是一個真實資源的URL實現。
FileSystemResource:一個實現文件處理的資源實現,支持文件或URL,實現WriteResource接口
ByteArrayResource:一個實現字節數組的資源實現,為字節資源創建ByteArrayInputStream
AbstractResource:一個公共的抽象接口類供調用,這個exists方法用于檢查是否一個文件或
輸入資源是否存在,isOpen總是返回false,toString方法返回描述。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/72310.html
摘要:簡介本篇文章是容器源碼分析系列文章的最后一篇文章,本篇文章所分析的對象是方法,該方法用于對已完成屬性填充的做最后的初始化工作。后置處理器是拓展點之一,通過實現后置處理器接口,我們就可以插手的初始化過程。 1. 簡介 本篇文章是Spring IOC 容器源碼分析系列文章的最后一篇文章,本篇文章所分析的對象是 initializeBean 方法,該方法用于對已完成屬性填充的 bean 做最...
摘要:本文是容器源碼分析系列文章的第一篇文章,將會著重介紹的一些使用方法和特性,為后續的源碼分析文章做鋪墊。我們可以通過這兩個別名獲取到這個實例,比如下面的測試代碼測試結果如下本小節,我們來了解一下這個特性。 1. 簡介 Spring 是一個輕量級的企業級應用開發框架,于 2004 年由 Rod Johnson 發布了 1.0 版本。經過十幾年的迭代,現在的 Spring 框架已經非常成熟了...
摘要:在寫完容器源碼分析系列文章中的最后一篇后,沒敢懈怠,趁熱打鐵,花了天時間閱讀了方面的源碼。從今天開始,我將對部分的源碼分析系列文章進行更新。全稱是,即面向切面的編程,是一種開發理念。在中,切面只是一個概念,并沒有一個具體的接口或類與此對應。 1. 簡介 前一段時間,我學習了 Spring IOC 容器方面的源碼,并寫了數篇文章對此進行講解。在寫完 Spring IOC 容器源碼分析系列...
摘要:源碼分析源碼一覽本節,我們先來看一下填充屬性的方法,即。所有的屬性值是在方法中統一被注入到對象中的。檢測是否存在與相關的或。這樣可以在很大程度上降低源碼分析的難度。若候選項是非類型,則表明已經完成了實例化,此時直接返回即可。 1. 簡介 本篇文章,我們來一起了解一下 Spring 是如何將配置文件中的屬性值填充到 bean 對象中的。我在前面幾篇文章中介紹過 Spring 創建 bea...
摘要:關于創建實例的過程,我將會分幾篇文章進行分析。源碼分析創建實例的入口在正式分析方法前,我們先來看看方法是在哪里被調用的。時,表明方法不存在,此時拋出異常。該變量用于表示是否提前暴露單例,用于解決循環依賴。 1. 簡介 在上一篇文章中,我比較詳細的分析了獲取 bean 的方法,也就是getBean(String)的實現邏輯。對于已實例化好的單例 bean,getBean(String) ...
閱讀 1728·2021-10-18 13:34
閱讀 3919·2021-09-08 10:42
閱讀 1562·2021-09-02 09:56
閱讀 1613·2019-08-30 15:54
閱讀 3135·2019-08-29 18:44
閱讀 3307·2019-08-26 18:37
閱讀 2223·2019-08-26 12:13
閱讀 462·2019-08-26 10:20