https://www.cnblogs.com/wyq178/p/6843502.html
2.首先使用xml配置文件的好處是參數配置項與代碼分離,便於管理以及日后的維護和修改。
其次,xml是標准化的樹節點文檔,通用性強。
第三,在一個采用SSH2框架的java web項目中,容器在初次啟動的時候,會先讀取web.xml,如果web.xml里面配置了spring和struts2的監聽器,則會通過監聽器的配置路徑找到spring和struts的配置文件。srping的配置文件是applicationContext.xml,而struts2的配置文件是struts.xml。至於底層解析可能是采用dom解析方式。
再來接着說解析后被調用的過程:
當容器啟動並讀取web.xml的時候,如果發現有配置監聽器,則會先進入監聽器的初始化方法,並執行里面的代碼邏輯。spring監聽器的配置為:
<!-- spring整合struts2的監聽器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 給監聽器設置需要監聽的spring配置文件路徑 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
注意第二段配置描述的spring的監聽配置文件路徑,也就是說spring容器加載的參數都是定義在項目src下的:applicationContext.xml中。這時候容器會讀取該配置文件,從而知道了用戶定義了哪些要初始化的Bean,要注入的對象等等。比如如果在spring中注入了數據持久層框架Hibernate,那么就會將Hibernage的sessionFaction初始化出來,並且將相應的數據源信息加載到內存中,從而在開發的時候,直接從容器中獲取dao對象來進行數據持久層的相關操作。這樣就不用在代碼中再去設置要操作哪個數據庫的,已經超時時間等相關參數了。從而做到我一開始說的配置項和代碼的分離。
https://www.cnblogs.com/zhaojiankai/p/8108832.html
4.bean與spring容器的關系