最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring MVC之WebApplicationContext_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

 更新時(shí)間:2017年08月31日 10:24:29   投稿:mrr  
這篇文章主要介紹了Spring MVC之WebApplicationContext的相關(guān)資料,需要的朋友可以參考下

如果你使用了listener監(jiān)聽器來加載配置,一般在Struts+Spring+Hibernate的項(xiàng)目中都是使用listener監(jiān)聽器的。如下
Java代碼  

<listener>  
 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
</listener> 

 Spring會(huì)創(chuàng)建一個(gè)WebApplicationContext上下文,稱為父上下文(父容器) ,保存在 ServletContext中,key是WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE的值。

可以使用Spring提供的工具類取出上下文對(duì)象:WebApplicationContextUtils.getWebApplicationContext(ServletContext); 

DispatcherServlet是一個(gè)Servlet,可以同時(shí)配置多個(gè),每個(gè) DispatcherServlet有一個(gè)自己的上下文對(duì)象(WebApplicationContext),稱為子上下文(子容器),子上下文可以訪問父上下文中的內(nèi)容,但父上下文不能訪問子上下文中的內(nèi)容。 它也保存在 ServletContext中,key是"org.springframework.web.servlet.FrameworkServlet.CONTEXT"+Servlet名稱。

當(dāng)一個(gè)Request對(duì)象產(chǎn)生時(shí),會(huì)把這個(gè)子上下文對(duì)象(WebApplicationContext)保存在Request對(duì)象中,key是DispatcherServlet.class.getName() + ".CONTEXT"。

可以使用工具類取出上下文對(duì)象:RequestContextUtils.getWebApplicationContext(request);

說明 :Spring 并沒有限制我們,必須使用父子上下文。我們可以自己決定如何使用。

方案一,傳統(tǒng)型:

父上下文容器中保存數(shù)據(jù)源、服務(wù)層、DAO層、事務(wù)的Bean。

子上下文容器中保存Mvc相關(guān)的Action的Bean.

事務(wù)控制在服務(wù)層。

由于父上下文容器不能訪問子上下文容器中內(nèi)容,事務(wù)的Bean在父上下文容器中,無法訪問子上下文容器中內(nèi)容,就無法對(duì)子上下文容器中Action進(jìn)行AOP(事務(wù))。

當(dāng)然,做為“傳統(tǒng)型”方案,也沒有必要這要做。 

方案二,激進(jìn)型:

Java世界的“面向接口編程”的思想是正確的,但在增刪改查為主業(yè)務(wù)的系統(tǒng)里,Dao層接口,Dao層實(shí)現(xiàn)類,Service層接口,Service層實(shí)現(xiàn)類,Action父類,Action。再加上眾多的O(vo\po\bo)和jsp頁面。寫一個(gè)小功能 7、8個(gè)類就寫出來了。 開發(fā)者說我就是想接點(diǎn)私活兒,和PHP,ASP搶搶飯碗,但我又是Java程序員。最好的結(jié)果是大項(xiàng)目能做好,小項(xiàng)目能做快。所以“激進(jìn)型”方案就出現(xiàn)了-----沒有接口、沒有Service層、還可以沒有眾多的O(vo\po\bo)。那沒有Service層事務(wù)控制在哪一層?只好上升的Action層。

本文不想說這是不是正確的思想,我想說的是Spring不會(huì)限制你這樣做。

由于有了父子上下文,你將無法實(shí)現(xiàn)這一目標(biāo)。解決方案是只使用子上下文容器,不要父上下文容器 。所以數(shù)據(jù)源、服務(wù)層、DAO層、事務(wù)的Bean、Action的Bean都放在子上下文容器中。就可以實(shí)現(xiàn)了,事務(wù)(注解事務(wù))就正常工作了。這樣才夠激進(jìn)。

總結(jié):不使用listener監(jiān)聽器來加載spring的配置文件,只使用DispatcherServlet來加載spring的配置,不要父子上下文,只使用一個(gè)DispatcherServlet,事情就簡單了,什么麻煩事兒也沒有了。

Java--大項(xiàng)目能做好--按傳統(tǒng)方式做,規(guī)規(guī)矩矩的做,好擴(kuò)展,好維護(hù)。

Java--小項(xiàng)目能做快--按激進(jìn)方式做,一周時(shí)間就可以出一個(gè)版本,先上線接受市場(chǎng)(用戶)的反饋,再改進(jìn),再反饋,時(shí)間就是生命(成本)。

相關(guān)文章

  • 設(shè)置JavaScript自動(dòng)提示-Eclipse/MyEclipse

    設(shè)置JavaScript自動(dòng)提示-Eclipse/MyEclipse

    自動(dòng)提示需要2個(gè)組件,分別是:ext-4.0.2a.jsb2||spket-1.6.16.jar,需要的朋友可以參考下
    2016-05-05
  • java各種類型對(duì)象占用內(nèi)存情況分析

    java各種類型對(duì)象占用內(nèi)存情況分析

    這篇文章主要介紹了java各種類型對(duì)象占用內(nèi)存情況分析,對(duì)內(nèi)存或者性能優(yōu)化感興趣的同學(xué),一定要看一下
    2021-04-04
  • 利用Spring Cloud Config結(jié)合Bus實(shí)現(xiàn)分布式配置中心的步驟

    利用Spring Cloud Config結(jié)合Bus實(shí)現(xiàn)分布式配置中心的步驟

    這篇文章主要介紹了利用Spring Cloud Config結(jié)合Bus實(shí)現(xiàn)分布式配置中心的相關(guān)資料,文中通過示例代碼將實(shí)現(xiàn)的步驟一步步介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友下面來一起看看吧
    2018-05-05
  • 一文詳解Java屬性為什么不能是is開頭的boolean

    一文詳解Java屬性為什么不能是is開頭的boolean

    在Java實(shí)體類定義中,boolean類型的屬性命名常引發(fā)爭議,阿里巴巴Java開發(fā)手冊(cè)建議避免使用is作為布爾類型屬性的前綴,原因在于當(dāng)實(shí)體類被序列化或反序列化時(shí),基于JavaBean規(guī)范的框架可能會(huì)移除或忽略is,導(dǎo)致不一致的字段名,文中介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • Java 創(chuàng)建線程的3種方法及各自的優(yōu)點(diǎn)

    Java 創(chuàng)建線程的3種方法及各自的優(yōu)點(diǎn)

    這篇文章主要介紹了Java 創(chuàng)建線程的3種方法及各自的優(yōu)點(diǎn),文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 解決IDEA光標(biāo)變成白色粗條的問題

    解決IDEA光標(biāo)變成白色粗條的問題

    這篇文章主要介紹了解決IDEA光標(biāo)變成白色粗條的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Springboot使用redisson實(shí)現(xiàn)分布式鎖的代碼示例

    Springboot使用redisson實(shí)現(xiàn)分布式鎖的代碼示例

    在實(shí)際項(xiàng)目中,某些場(chǎng)景下可能需要使用到分布式鎖功能,那么實(shí)現(xiàn)分布式鎖有多種方式,常見的如mysql分布式鎖、zookeeper分布式鎖、redis分布式鎖,本文介紹springboot如何使用redisson實(shí)現(xiàn)分布式鎖,需要的朋友可以參考下
    2023-06-06
  • 詳解Spring事件發(fā)布與監(jiān)聽機(jī)制

    詳解Spring事件發(fā)布與監(jiān)聽機(jī)制

    Spring提供了ApplicationContext事件機(jī)制,可以發(fā)布和監(jiān)聽事件,這個(gè)特性非常有用。Spring內(nèi)置了一些事件和監(jiān)聽器,例如在Spring容器啟動(dòng)前,Spring容器啟動(dòng)后,應(yīng)用啟動(dòng)失敗后等事件發(fā)生后,監(jiān)聽在這些事件上的監(jiān)聽器會(huì)做出相應(yīng)的響應(yīng)處理
    2021-06-06
  • java使用for循環(huán)輸出楊輝三角

    java使用for循環(huán)輸出楊輝三角

    楊輝三角形由數(shù)字排列,可以把它看做一個(gè)數(shù)字表,其基本特性是兩側(cè)數(shù)值均為1,其他位置的數(shù)值是其正上方的數(shù)字與左上角數(shù)值之和,下面是java使用for循環(huán)輸出包括10行在內(nèi)的楊輝三角形
    2014-02-02
  • SpringMvc實(shí)現(xiàn)簡易計(jì)算器功能

    SpringMvc實(shí)現(xiàn)簡易計(jì)算器功能

    這篇文章主要為大家詳細(xì)介紹了SpringMvc實(shí)現(xiàn)簡易計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07

最新評(píng)論

浪卡子县| 温州市| 兴国县| 高密市| 昭平县| 威海市| 郓城县| 嫩江县| 托里县| 巴青县| 溆浦县| 杭锦后旗| 晋州市| 贡觉县| 九龙县| 佳木斯市| 阿鲁科尔沁旗| 弋阳县| 肇源县| 白朗县| 信阳市| 墨脱县| 阿鲁科尔沁旗| 慈溪市| 龙门县| 民和| 高雄市| 二连浩特市| 清苑县| 木兰县| 来凤县| 桐柏县| 柳河县| 林西县| 游戏| 米脂县| 塔城市| 重庆市| 甘德县| 马边| 巧家县|