版本:5.2.8
實現了servletcontextlistener介面,可以在servletcontext建立時執行contextinitialized方法;
繼承了contextloader類,主要的業務邏輯寫在這個父類中,此處沒有放到乙個類中寫,做到了分離;
類載入的時候執行的初始化,載入當前類路徑的乙個名為contextloader.properties檔案到defaultstrategies裡;
)// 實際的載入處理在這個方法中
(cwac, servletcontext);}
}// 把這個context存到servletcontext中,與之前的先判斷是否存在相對應
servletcontext.
setattribute
this
.context)
; classloader ccl = thread.
currentthread()
.getcontextclassloader()
;if(ccl == contextloader.
class
.getclassloader()
)else
if(ccl != null)
if(logger.
isinfoenabled()
)return
this
.context;
}catch
(runtimeexception
| error ex)
}(servletcontext sc)
return
instantiateclass
(contextclass);}
protected class<
?>
determinecontextclass
(servletcontext servletcontext)
catch
(classnotfoundexception ex)
}else
catch
(classnotfoundexception ex)
}}
protected
void
else
} wac.
setservletcontext
(sc)
;// 獲取在web.xml中配置的spring配置檔名
string configlocationparam = sc.
getinitparameter
(config_location_param);if
(configlocationparam != null)
configurableenvironment env = wac.
getenvironment()
;if(env instanceof
configurablewebenvironment
)customizecontext
(sc, wac)
;// 載入bean
Spring 資源載入
pom.xml org.springframework spring core 4.3.14.release org.springframework spring beans 4.3.16.release org.springframework spring context 4.3.16.relea...
Spring提前載入與懶載入
首先,spring預設是提前載入,這意味著當專案啟動,spring初始化,spring會把所有的掃瞄包下的 所有帶spring 註解 component repository service controller 的類都初始化。注意 當初始化時,會呼叫預設構造方法,即乙個空的構造方法,但當在類中加入...
spring動態載入bean
廢話不多說,直接上 private static final string strs new string protected mapremotes new hashmap for int i 0 i string name one if i 0 beandefinitionbuilder user...