在一般的web應用程式,我們倘若用到spring的話,需要在web.xml中配置以下的資訊來使一些容器,例如
tomcat
、jetty
等來載入spring。
以下是web.xml的部分**配置
<
context-param
>
<
param-name
>
contextconfiglocation
param-name
>
<
param-value
>
classpath:config/spring-*.xml
param-value
>
context-param
>
<
listener
>
<
listener-class
>
org.springframework.web.context.contextloaderlistener
listener-class
>
listener
>
而spring
主要通過
contextloaderlistener
類在應用啟動時載入其服務,通過原始碼可知,contextloaderlistener實現了
servletcontextlistener類,重寫了contextinitialized方法
現在讓我們著重看一下這個
這個方法到底做了什麼事呢。
這個方法的實現在
org.springframework.web.context.contextloader
下我們只擷取部分重要**
細心的同學會發現,上面我們已經說過了,這個方法的實現在org.springframework.web.context.contextloader下,讓我們回到contextloader類看看,到底有什麼玄機。
static
catch (ioexception ex)
}
沒錯,非常有意思是contextloader類裡面有乙個靜態**塊,在類啟動載入的時候就已經去讀取org\springframework\web\context\contextloader.properties這個配置檔案並進行載入了。
中的refresh方法,在該方法裡,會完成載入資源、配置檔案(包括配置檔案中的自定義標籤)解析、bean定義註冊、元件初始化。
在看refresh方法之前,我們先看一下customizecontext(sc, wac)這個方法。refresh方法放到下一章講解。
配置和示例如下:
在web.xml中加入一下配置
globalinitializerclasses
com.deepbaytech.service.impl.initializer1
system.err.println("initializer1初始化完成");}} 關於spring原始碼解讀
spring源 解析 一 ioc容器 spring源 解析 二 ioc容器在web容器中的啟動 spring源 解析 三 spring jdbc spring源 解析 四 spring mvc spring源 解析 五 spring aop獲取proxy spring源 解析 六 spring宣告式...
Spring 原始碼解讀 推薦流程
spring源 解析 一 ioc容器 spring源 解析 二 ioc容器在web容器中的啟動 spring源 解析 三 spring jdbc spring源 解析 四 spring mvc spring源 解析 五 spring aop獲取proxy spring源 解析 六 spring宣告式...
Spring 原始碼解讀 推薦流程
spring源 解析 一 ioc容器 spring源 解析 二 ioc容器在web容器中的啟動 spring源 解析 三 spring jdbc spring源 解析 四 spring mvc spring源 解析 五 spring aop獲取proxy spring源 解析 六 spring宣告式...