1. 程式人生 > >applicationContext-XXX.xml和XXX-servlet.xml的區別

applicationContext-XXX.xml和XXX-servlet.xml的區別

IT xxx bottom pat 官網 轉發 ota sca AC

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"

expression="org.springframework.stereotype.Controller" />
</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" />

</context:component-scan>

applicationContext-XXX.xml和XXX-servlet.xml的區別