Spring整合Springmvc的相關(guān)介紹
1. 是否需要整合 ?
- 不需要 : 單獨(dú)使用Springmvc. 需要將原先Spring中的內(nèi)容通通遷移到Springmvc中. 例如:數(shù)據(jù)源、事務(wù)、AOP、Service 、Dao …
- 需要: 使用Spring + Springmvc.
- Spring : 數(shù)據(jù)源、事務(wù)、AOP、Service 、Dao …
- Springmvc : 只負(fù)責(zé)WEB相關(guān)的.
2. Spring容器對(duì)象如何進(jìn)行創(chuàng)建?
非WEB環(huán)境: 直接在main方法 或者是junit測(cè)試方法中 通過new ClassPathXmlApplicationContext(“spring配置文件”);
WEB環(huán)境 :
Springmvc容器如何創(chuàng)建的?
Springmvc的容器對(duì)象是在WEB應(yīng)用服務(wù)器啟動(dòng)時(shí)就創(chuàng)建好的.
Spring 容器對(duì)象如何創(chuàng)建?
- 期望: Spring 的容器對(duì)象也在WEB應(yīng)用服務(wù)器啟動(dòng)時(shí)就創(chuàng)建.
- 解決: 使用監(jiān)聽器 Listener
- 思路: 通過監(jiān)聽器 監(jiān)聽 ServletContext對(duì)象的創(chuàng)建, 因?yàn)镾ervletContext是在WEB應(yīng)用服務(wù)器啟動(dòng)時(shí)創(chuàng)建的.
當(dāng)監(jiān)聽到該事件后,在事件處理方法中將Spring的容器對(duì)象創(chuàng)建出來.
然后,再將Spring的容器對(duì)象綁定到ServletContext對(duì)象中保存起來,并能共享給WEB應(yīng)用服務(wù)器中的各個(gè)組件.
Tips: 監(jiān)聽器可監(jiān)聽的對(duì)象 以及 監(jiān)聽的事件
- ① ServletContext(application): 生命周期事件(對(duì)象的創(chuàng)建、對(duì)象的銷毀)、 數(shù)據(jù)綁定事件(添加數(shù)據(jù)、替換數(shù)據(jù)、移除數(shù)據(jù))
- ② HttpSession
- ③ HttpServletRequest
Spring 提供好的監(jiān)聽器: ContextLoaderListener
3. Bean被創(chuàng)建兩次的問題:
Springmvc : <context:include-filter type=“annotation” expression="@Controller" /> use-default-filters= false
Spring : <context:exclude-filter type=“annotation” expression="@Controller" />
4. Spring 與 Springmvc 容器的關(guān)系 ?
父子關(guān)系。Spring是父容器, Springmvc是子容器. 子容器可以訪問父容器,反之則不行.
Spring : Root WebApplicationContext: startup date [Tue Dec 11 15:34:46 CST 2018]; root of context hierarchy
Springmvc : WebApplicationContext for namespace ‘springDispatcherServlet-servlet': startup date [Tue Dec 11 15:37:11
CST 2018]; parent: Root WebApplicationContext
5. 如何在Handler的方法中獲取到Spring的容器對(duì)象?
第一種方式:servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
第二種方式: WebApplicationContextUtils.getWebApplicationContext(servletContext);
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- springmvc處理響應(yīng)數(shù)據(jù)的解析
- springmvc中RequestMappingHandlerAdapter與HttpMessageConverter的裝配講解
- Springmvc的運(yùn)行流程圖文詳解
- 詳解Spring MVC/Boot 統(tǒng)一異常處理最佳實(shí)踐
- C#語言MVC框架Aspose.Cells控件導(dǎo)出Excel表數(shù)據(jù)
- mvc實(shí)現(xiàn)圖片驗(yàn)證碼功能
- Spring mvc防止數(shù)據(jù)重復(fù)提交的方法
- Spring MVC處理參數(shù)中的枚舉類型通用實(shí)現(xiàn)方法
- spring+springmvc+mybatis 開發(fā)JAVA單體應(yīng)用
- MVC設(shè)定默認(rèn)路由為指定的Area下的某個(gè)action
相關(guān)文章
使用Springboot整合GridFS實(shí)現(xiàn)文件操作
這篇文章主要介紹了使用Springboot整合GridFS實(shí)現(xiàn)文件操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10Java使用注解實(shí)現(xiàn)防止重復(fù)提交實(shí)例
這篇文章主要介紹了Java使用注解實(shí)現(xiàn)防止重復(fù)提交實(shí)例,在一些項(xiàng)目中由于用戶誤操作,多次點(diǎn)擊表單提交按鈕,會(huì)產(chǎn)生很多次的數(shù)據(jù)交互,為了解決這一問題,本文使用注解來實(shí)現(xiàn)防止重復(fù)提交,需要的朋友可以參考下2023-07-07使用java實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲
這篇文章主要介紹了使用java實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07MyBatis的SQL執(zhí)行結(jié)果和客戶端執(zhí)行結(jié)果不一致問題排查
本文主要介紹了MyBatis的SQL執(zhí)行結(jié)果和客戶端執(zhí)行結(jié)果不一致問題排查,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04深入解析Java的Hibernate框架中的一對(duì)一關(guān)聯(lián)映射
這篇文章主要介紹了Java的Hibernate框架的一對(duì)一關(guān)聯(lián)映射,包括對(duì)一對(duì)一外聯(lián)映射的講解,需要的朋友可以參考下2016-01-01