Spring源碼解析(三)-Resource的分析

IoC容器初始化包括:Bean定義資源文件的定位、載入和注冊3個基本過程

ClassPathResource resource = new ClassPathResource("beans.xml");
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
XmlBeanDefinitionReader  reader = new XmlBeanDefinitionReader(factory);
reader.loadBeanDefinitions(resource);

Resource,InputStreamSource的源代碼

public interface Resource extends InputStreamSource {
    boolean exists();
    boolean isReadable();
    boolean isOpen();
    URL getURL() throws IOException;
    URI getURI() throws IOException;
    File getFile() throws IOException;
    long contentLength() throws IOException;
    long lastModified() throws IOException;
    Resource createRelative(String relativePath) throws IOException;
    String getFilename();
    String getDescription();
}

public interface InputStreamSource {
    InputStream getInputStream() throws IOException;
}

Resource的結(jié)構(gòu)體系

Resource結(jié)構(gòu)體系.png

為什么要定義Resource

這里的Resource其實(shí)和第一講的BeanFactory有著異曲同工之妙,先定義好規(guī)范,讓子類去擴(kuò)展將功能完善!這里不做詳細(xì)介紹了,簡單的講一下Resource的四個子類

 1.ClassPathResource:通過 ClassPathResource 以類路徑的方式進(jìn)行訪問;
 2.FileSystemResource:通過 FileSystemResource 以文件系統(tǒng)絕對路徑的方式進(jìn)行訪問;
 3.ServletContextResource:通過 ServletContextResource 以相對于Web應(yīng)用根目錄的方式進(jìn)行訪問。
 4.UrlResource :通過java.net.URL來訪問資源,當(dāng)然它也支持File格式,如“file:”
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容