今天以org.springframework.web.context.ContextLoaderListener為主題签舞,開啟分享风瘦。話不多說火鼻,直接上干貨棱诱。
ContextLoaderListener的整體框架圖如下所示:
1、EventListener只是所有事件偵聽器接口必須擴展的標記接口饲宿,內部無具體邏輯厦酬。
2、ServletContextListener是對ServeltContext的監(jiān)聽器瘫想。此接口僅包括兩個方法:容器啟動時調用contextInitialized方法.容器關閉時調用contextDestroyed方法仗阅。
3、ContextLoader由ContextLoaderListener調用殿托,大部實現(xiàn)都隱藏在 ContextLoader 類里霹菊,如感興趣可繼續(xù)修煉。
4支竹、ContextLoaderListener調用contextInitialized方法完成Spring上下文初始化;調用contextDestroyed方法完成Spring上下文銷毀鸠按。
5礼搁、可自行定義ContextLoaderListener的子類,進而在上下文啟動與銷毀時加入自定義功能目尖。
示例如下:
(1)web.xml配置信息如下:
(2)主要代碼實現(xiàn)如下:
public class ContextLoaderListener extends org.springframework.web.context.ContextLoaderListener {
@Override
public void contextInitialized(ServletContextEvent event) {
// 設置自定義功能馒吴,可根據(jù)不同需要自行加入
// 初始化spring上下文
super.contextInitialized(event);
}
@Override
public void contextDestroyed(ServletContextEvent event) {
try {
// 設置自定義功能,可根據(jù)不同需要自行加入
} catch (Throwable e) {
}
super.contextDestroyed(event);
}
}
最后希望大家善用此功能瑟曲!不要小瞧這個功能呦饮戳,有的公司就是采用這種方式完成的自定邏輯預加載,如統(tǒng)一配置信息的預加載等等洞拨。
作者:Gallen