Spring解析xml理解

Sprign解析xml配置使用dom4j.app

第一步:獲取Document

public class DocumentHelper{    
    //聲明map存放節點
    private Map<String, Document> docs = new HashMap<String, Document>();
    public Document getDocument(String filePath) {
        //用HashMap先根據路徑獲取文檔
        Document doc=this.docs.get(filePath); 
        if (doc==null) {
            //dom4j的解析獲得doc
            …    
            this.docs.put(filePath, doc); //若是爲空,把路徑和文檔放進去      
        } 
        return  this.docs.get(filePath);
    }
}

第二步:獲取Element

public class ElementHelper{
    //聲明map存放節點
    private Map<String, Element> elements=new HashMap<String, Element>();
    //往集合增長元素
    public void addElements(Document doc) {
        //獲取document的elements節點,而且放入集合中
        …
    }
    //獲取集合元素
    public Element getElement(String id) {
        return elements.get(id);
}
//獲取全部的元素
Collection<Element> getElements(){…}
}

第三步:Bean的創造

public class BeanCreatorHelper{
    //空構造器
    public Object createBeanUseDefaultConstruct(String className) {
        return = Class.forName(className).newInstance();
    }
    //執行方法
    …
    //其餘set方法還原等等
    …
}

第四步:applicationContext簡單實現

public class ApplicationContextHelper {
    protected ElementHelper elementHelper = new ElementHelper();
    protected Map<String, Object> beans = new HashMap<String, Object>();
    //獲取具體的對象實例,也是咱們使用Spring框架中用的最多的一個方法
    public Object getBean(String id) {
    Object bean = this.beans.get(id);
    if (bean == null) {
        //一、獲取到配置文件中的節點
        Element e = elementHelper.getElement(id);
        //二、經過bean創造器BeanCreatorHelper,經過反射機制得到對象,而且放到map集合中。
        ...
    }
    return bean;
}

總結

從Document的創造,再到Element的建立,再到解析Element,到applicationContext的實現。這一過程在編碼中是按照順序進行的,是不可逆的。真正的代碼結構遠比我上面提到的要複雜的不少。好比applicationContextHelper中,還有其餘的自動注入方法等等,須要更深刻的瞭解。框架

相關文章
相關標籤/搜索