springmvc項目中直接獲取Bean

? ? 近期在做項目的時候榴都,需要用到一個定時器來處理一個定時任務待锈,而定時任務又需要操作數(shù)據(jù)庫,而這里我用了JDK自帶的TimerTask和Timer處理的嘴高,所以需要在TimerTask類中獲取具體的service或者dao Bean竿音。

實現(xiàn)思路,大體分為監(jiān)聽項目啟動事件拴驮、獲取spring項目全局上下文春瞬、獲取具體的Bean 三步:

1、監(jiān)聽項目啟動事件:

這個有好幾種方法套啤,這里用的是實現(xiàn)ServletContextListener(javax.servlet.ServletContextListener)接口的監(jiān)聽器宽气,然后實現(xiàn)該接口的幾個方法(

contextInitialized--監(jiān)聽項目啟動初始化随常。然后要在項目中注冊這個監(jiān)聽器,即在web.xml中配置個listener萄涯,class指向該類绪氛。

這里有個坑點:web.xml中定義這個listener的時候,它的位置一定要在項目加載核心配置文件之后@杂啊T娌臁!即位置至少要在contextConfigLocation這個context-param之后燃逻,或者之后獲取的Context將會為null序目!


2、獲取spring項目全局上下文:

注冊過監(jiān)聽器之后伯襟,要在contextInitialized方法中通過WebApplicationContextUtils.getWebApplicationContext(ServletContext sc)方法獲取WebApplicationContext對象猿涨,這樣我們就獲取到我們想要的全局項目對象了(當然實現(xiàn)這個功能還有別的方法,大家有興趣可以研究下)姆怪,為了方便項目中使用可以在這個類中定義一個私有靜態(tài)的WebApplicationContext對象叛赚,并提供一個公開的get方法。


3片效、獲取具體的Bean

之后我們就可以在TimerTask類中獲取WebApplicationContext對象红伦,通過調用getBean方法獲取想要的Bean了,getBean有多個重載方法淀衣,可以根據(jù)需要昙读,選擇適合自己的那個。


補充:我們定義好的TimerTask類膨桥,也可以在第一步定義的那個監(jiān)聽器的contextInitialized方法中進行注冊蛮浑,這樣也可以保證項目啟動的時候定時任務開始等待執(zhí)行。


----(java開發(fā)小菜鳥只嚣,路過發(fā)現(xiàn)有什么錯誤的地方沮稚,煩請?zhí)岢鰜恚x謝2嵛琛)----

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末蕴掏,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子调鲸,更是在濱河造成了極大的恐慌盛杰,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件藐石,死亡現(xiàn)場離奇詭異即供,居然都是意外死亡,警方通過查閱死者的電腦和手機于微,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門逗嫡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來青自,“玉大人,你說我怎么就攤上這事驱证⊙哟埽” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵雷滚,是天一觀的道長需曾。 經(jīng)常有香客問我,道長祈远,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任商源,我火速辦了婚禮车份,結果婚禮上,老公的妹妹穿的比我還像新娘牡彻。我一直安慰自己扫沼,他們只是感情好,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般搔啊。 火紅的嫁衣襯著肌膚如雪凳干。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天连霉,我揣著相機與錄音,去河邊找鬼。 笑死轰坊,一個胖子當著我的面吹牛,可吹牛的內容都是我干的祟印。 我是一名探鬼主播肴沫,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蕴忆!你這毒婦竟也來了颤芬?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤套鹅,失蹤者是張志新(化名)和其女友劉穎站蝠,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芋哭,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡沉衣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了减牺。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豌习。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡存谎,死狀恐怖,靈堂內的尸體忽然破棺而出肥隆,到底是詐尸還是另有隱情既荚,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布栋艳,位于F島的核電站恰聘,受9級特大地震影響,放射性物質發(fā)生泄漏吸占。R本人自食惡果不足惜晴叨,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望矾屯。 院中可真熱鬧兼蕊,春花似錦、人聲如沸件蚕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽排作。三九已至牵啦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間妄痪,已是汗流浹背哈雏。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拌夏,地道東北人僧著。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像障簿,于是被迫代替她去往敵國和親盹愚。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內容

  • Spring容器高層視圖 Spring 啟動時讀取應用程序提供的Bean配置信息站故,并在Spring容器中生成一份相...
    Theriseof閱讀 2,812評論 1 24
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,809評論 6 342
  • 你要知道的SpringMVC啟動流程和源碼分析都在這里 轉載請注明出處 http://www.jianshu.co...
    WWWWDotPNG閱讀 18,659評論 8 66
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理皆怕,服務發(fā)現(xiàn),斷路器西篓,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • 設計模式從入門到放棄系列 01 -- UML 基礎 StarUML UML 主要類別 UML 作為一個標準愈腾,有很多...
    內心強大的Jim閱讀 474評論 0 0