国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring解析xml理解

Amio / 838人閱讀

摘要:總結(jié)從的創(chuàng)造,再到的創(chuàng)建,再到解析,到的實現(xiàn)。這一過程在編碼中是按照順序進(jìn)行的,是不可逆的。比如中,還有其他的自動注入方法等等,需要更深入的了解。

Sprign解析xml配置使用dom4j.

第一步:獲取Document
public class DocumentHelper{    
    //聲明map存放節(jié)點
    private Map docs = new HashMap();
    public Document getDocument(String filePath) {
        //用HashMap先根據(jù)路徑獲取文檔
        Document doc=this.docs.get(filePath); 
        if (doc==null) {
            //dom4j的解析得到doc
            …    
            this.docs.put(filePath, doc); //如果為空,把路徑和文檔放進(jìn)去      
        } 
        return  this.docs.get(filePath);
    }
}
第二步:獲取Element
public class ElementHelper{
    //聲明map存放節(jié)點
    private Map elements=new HashMap();
    //往集合增加元素
    public void addElements(Document doc) {
        //獲取document的elements節(jié)點,并且放入集合中
        …
    }
    //獲取集合元素
    public Element getElement(String id) {
        return elements.get(id);
}
//獲取所有的元素
Collection getElements(){…}
}
第三步:Bean的創(chuàng)造
public class BeanCreatorHelper{
    //空構(gòu)造器
    public Object createBeanUseDefaultConstruct(String className) {
        return = Class.forName(className).newInstance();
    }
    //執(zhí)行方法
    …
    //其他set方法還原等等
    …
}
第四步:applicationContext簡單實現(xiàn)
public class ApplicationContextHelper {
    protected ElementHelper elementHelper = new ElementHelper();
    protected Map beans = new HashMap();
    //獲取具體的對象實例,也是我們使用Spring框架中用的最多的一個方法
    public Object getBean(String id) {
    Object bean = this.beans.get(id);
    if (bean == null) {
        //1、獲取到配置文件中的節(jié)點
        Element e = elementHelper.getElement(id);
        //2、通過bean創(chuàng)造器BeanCreatorHelper,通過反射機(jī)制獲得對象,并且放到map集合中。
        ...
    }
    return bean;
}
總結(jié)

從Document的創(chuàng)造,再到Element的創(chuàng)建,再到解析Element,到applicationContext的實現(xiàn)。這一過程在編碼中是按照順序進(jìn)行的,是不可逆的。真正的代碼結(jié)構(gòu)遠(yuǎn)比我上面提到的要復(fù)雜的很多。比如applicationContextHelper中,還有其他的自動注入方法等等,需要更深入的了解。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/72776.html

相關(guān)文章

  • springMVC流程的學(xué)習(xí)和理解

    摘要:先用一個圖來表示基本流程圖這個網(wǎng)上很容易找到基本流程圖用戶發(fā)送請求到前端控制器前端控制器是的重要部分,位于中心,提供整個框架訪問點,起到交換的作用,而且與容器集成。在配置這個監(jiān)聽器,啟動容器時,就會默認(rèn)執(zhí)行它實現(xiàn)的方法。 先用一個圖來表示基本流程圖這個網(wǎng)上很容易找到 基本流程圖 showImg(https://segmentfault.com/img/bVbfDiV?w=1340&h...

    didikee 評論0 收藏0
  • 【Dubbo源碼閱讀系列】之 Dubbo XML 配置加載

    摘要:在介紹自定義標(biāo)簽解析前,先放一張圖幫助大家理解以下是如何從文件中解析并加載的。自定義標(biāo)簽比如的值為根據(jù)獲取到的,獲取對應(yīng)的對象。關(guān)于和加載先后順序的問題最后再集合一個小例子總結(jié)下吧當(dāng)我們先解析了元素時,我們會遍歷所有已經(jīng)注冊注冊表中。 今天我們來談?wù)?Dubbo XML 配置相關(guān)內(nèi)容。關(guān)于這部分內(nèi)容我打算分為以下幾個部分進(jìn)行介紹: Dubbo XML Spring 自定義 XML 標(biāo)...

    wangshijun 評論0 收藏0
  • 學(xué)Java編程需要注意的地方

    摘要:學(xué)編程真的不是一件容易的事不管你多喜歡或是多會編程,在學(xué)習(xí)和解決問題上總會碰到障礙。熟練掌握核心內(nèi)容,特別是和多線程初步具備面向?qū)ο笤O(shè)計和編程的能力掌握基本的優(yōu)化策略。   學(xué)Java編程真的不是一件容易的事,不管你多喜歡或是多會Java編程,在學(xué)習(xí)和解決問題上總會碰到障礙。工作的時間越久就越能明白這個道理。不過這倒是一個讓人進(jìn)步的機(jī)會,因為你要一直不斷的學(xué)習(xí)才能很好的解決你面前的難題...

    leanxi 評論0 收藏0
  • SpringMVC之源碼分析--ViewResolver(四)

    摘要:概述本章繼續(xù)學(xué)習(xí)另一個實現(xiàn)類解析器,該類的主要作用是根據(jù)同一請求的某些策略,選擇對應(yīng)的進(jìn)行渲染。可以把理解為適配器,對不同類型進(jìn)行適配。值得注意的是處理的為同一個。本系列文章是基于。實戰(zhàn)需求目標(biāo)實現(xiàn)后綴名或參數(shù)控制,顯示不同的視圖。 概述 本章繼續(xù)學(xué)習(xí)ViewResolver另一個實現(xiàn)類ContentNegotiatingViewResolver解析器,該類的主要作用是根據(jù)同一請求的某...

    jcc 評論0 收藏0
  • 仿照 Spring 實現(xiàn)簡單的 IOC 和 AOP - 下篇

    摘要:在上文中,我實現(xiàn)了一個很簡單的和容器。比如,我們所熟悉的就是在這里將切面邏輯織入相關(guān)中的。初始化的工作算是結(jié)束了,此時處于就緒狀態(tài),等待外部程序的調(diào)用。其中動態(tài)代理只能代理實現(xiàn)了接口的對象,而動態(tài)代理則無此限制。 1. 背景 本文承接上文,來繼續(xù)說說 IOC 和 AOP 的仿寫。在上文中,我實現(xiàn)了一個很簡單的 IOC 和 AOP 容器。上文實現(xiàn)的 IOC 和 AOP 功能很單一,且 I...

    AlexTuan 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<