applicationContext-XXX.xml和XXX-servlet.xml的區別
1.ApplicationContext.xml 是spring 全局配置文件,用來控制spring 特性的
2.dispatcher-servlet.xml 是spring mvc裏面的,控制器、攔截uri轉發view
3.一個bean如果在兩個文件中都被定義了(比如兩個文件中都定義了component scan掃描相同的package), spring會在application context和 servlet context中都生成一個實例,他們處於不同的上下文空間中,他們的行為方式是有可能不一樣的。
4.如果在application context和
servlet context中都存在同一個 @Service 的實例, controller(在servlet context中) 通過 @Resource引用時, 會優先選擇servlet context中的實例。
5.根據官網解釋servlet context可以引用application context裏的實例,反之不可以。
6.多個servlet共享application context裏的實例
7.建議使用方法:servlet只掃描@controler;application掃描其它
servlet.xml掃描配置
<!-- 掃描包 裏的註解生成bean
-->
<context:component-scan base-package="com.ssm.controller" use-default-filters="false">
<context:include-filter type="annotation"
</context:component-scan>
ApplicationContext.xml
掃描配置
<context:component-scan
base-package="com.ssm" use-default-filters="true">
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Controller" />
applicationContext-XXX.xml和XXX-servlet.xml的區別