小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

DispatcherServlet 和 ContextLoaderListener 的關(guān)系,到底用哪個(gè)?

 藏經(jīng)閣_蒼穹 2018-06-01
我們先看下這兩個(gè)東東的配置方法:

對(duì)于contextConfigLocation參數(shù),有2個(gè)地方可以配置:
1)context-param 是全局性配置
2)servlet下的init-param 是局部性配置
若以上兩處都設(shè)置了一個(gè)相同的bean配置文件路徑,那么該文件內(nèi)配置的bean會(huì)被初始化2次,所以一個(gè)配置文件只能選擇一種配置位置

項(xiàng)目中使用spring框架有2種方式:
1)listener下的ContextLoaderListener 是一種引入方式,默認(rèn)讀取/WEB-INF/applicationContext.xml
2)若是spring-web項(xiàng)目,DispatcherServlet 也是一種引入方式,默認(rèn)讀取/WEB-INF/${servlet-name}-servlet.xml
倘若以上2種配置都引入了,那么全局性的bean配置文件會(huì)被加載2次;而且2種方式的各自配置文件里的配置項(xiàng)在某種意義上并不是合并互補(bǔ),而是各成一個(gè)體系(雖然普通的bean看似是都加載到全局上下文來了,但還是有一些特殊bean和配置項(xiàng)沒有按預(yù)期的那樣工作);
比如/WEB-INF/applicationContext.xml文件下里的AOP聲明式配置:
<!--aop 行為-->
<bean id="himvn" class="com.tangbao.hellomvn.Himvn" />
<!--aop 注釋方式-->
<bean id="hiaspect" class="com.tangbao.hellomvn.Hiaspect" />
<!--aop config-->
<aop:aspectj-autoproxy />
<aop:config>
<aop:aspect id="aoplianxi" ref="himvn">
<aop:pointcut id="test1" expression="execution(* com.tangbao.controller.RestlessController.RestlessController(..))"></aop:pointcut>
<aop:before method="sayHi" pointcut-ref="test1"></aop:before>
<aop:after method="sayHi" pointcut-ref="test1"></aop:after>
</aop:aspect>
</aop:config>
若只是在全局配置項(xiàng)中,而沒有在DispatcherServlet 中加載,那么此aop會(huì)無效。


所以,在web項(xiàng)目中,就不要使用ContextLoaderListener 和全局配置contextConfigLocation參數(shù)了,統(tǒng)一在DispatcherServlet 下配置,應(yīng)該就不那么混亂了。如下:

這樣結(jié)果就如我們的預(yù)期:多bean配置文件不會(huì)出現(xiàn)重復(fù)加載,所有aop配置也都生效。

以上論點(diǎn)是在spring4.3.1下親測(cè)所得,當(dāng)然是從表現(xiàn)猜測(cè)本質(zhì)的,還沒有真正去研讀Spring的源碼,所以若有原理說錯(cuò)之處,還望各位看官指出!





























































    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多