1.直接使用SpringMVC是可以不 添加applicationContext.xml文件的。
使用applicationContext.xml
文件時是需要在web.xml
中添加listener
的:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
而這個一般是采用非spring mvc
架構(gòu)煤伟,如使用struts
之類而又想引入spring
才添加的瞭吃,這個是用來加載Application Context
。
如果直接采用SpringMVC
杜跷,只需要把所有相關(guān)配置放到xxx-servlet.xml
中就OK了傍念。
2. springMVC
設(shè)計的基本架構(gòu)
SpringMVC
的配置分為兩部分application.xml
和spring-servlet.xml
- 兩個配置文件的作用和配置位置
2.1.application.xml
:對應(yīng)的是系統(tǒng)級別的配置,作用范圍是系統(tǒng)上下文葛闷。
2.2.spring-servlet.xml
:對應(yīng)的是controller
級別的配置憋槐,作用范圍是控制層上下文。- 它們在
web.xml
中的配置
3.1.因為application.xml
是系統(tǒng)級別的上下文淑趾,所以它的初始化需要放到web.xml
中的<context-param>
標(biāo)簽中阳仔,同時其他的類似定時任務(wù)的配置文件等等都是放在這個標(biāo)簽下進行初始化的。
3.2.因為spring-servlet.xml
只是controller
級別的上下文戳气,說白了就是servlet
級別的初始化售担,它不涉及到除了轉(zhuǎn)發(fā)之外的任何實體澎现,所以它的作用范圍僅僅限制在servlet
級別,所以它的初始化應(yīng)該是跟spring
的DispatcherServlet
初始化在一起评矩,所以就是在<servlet>
表情中初始化的。它有一個默認值就是【/WEB-INF/remoting-servlet.xml 】
阱飘,注意配置文件的對應(yīng)的名稱是【 servlet-name】-servlet.xml
稚照。
比如:以下配置中 DispatcherServlet對應(yīng)的直接配置了對應(yīng)的spring-servlet.xml
, 也可以不配置,但是默認會找springmvc-servlet.xml
,對應(yīng)<servlet-name>springmvc</servlet-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
所以如果你沒有給
servlet
制定配置文件的位置,并且在默認位置下也沒有配置文件果录,那么系統(tǒng)啟動的時候就會報錯上枕。
注意:對于 servlet配置文件里面應(yīng)該初始化的東西,除了視圖的解析方式弱恒、靜態(tài)資源文件的存放位置辨萍、controller的初始化方式之外,其他的都不應(yīng)該放在 servlet 配置文件中返弹,應(yīng)為它只負責(zé) 請求的轉(zhuǎn)發(fā)锈玉,返回結(jié)果的解析以及靜態(tài)資源文件的解析,其他的對象的初始化义起,定時任務(wù)...都不應(yīng)該放到這個配置文件下進行管理拉背。