xxx-servlet.xml与ApplciationContext.xml
- 如果直接使用SpringMVC是可以不添加applicationContext.xml文件的。
- 使用applicationContext.xml文件时是需要在web.xml中添加listener的:
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
- 而这个一般是采用非spring mvc架构,如使用struts之类而又想引入spring才添加的,这个是用来加载Application Context。
- 如果直接采用SpringMVC,只需要把所有相关配置放到xxx-servlet.xml中就OK了。
SpringMVC提供了一个名为org.springframework.web.servelt.DispatcherServlet的Servlet充当前端控制器,所有的请求驱动都围绕着这个DispatcherServlet来分派请求。
DispatcherServlet是一个Servlet(它继承自HttpServlet基类),需要在web.xml中进行配置。
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-config.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>
- 在web.xml中配置了DispatcherServlet之后,该Servlet在Web应用程序启动时立即加载,DispatcherServlet加载时会需要一个Spring MVC配置文件,默认情况下,应用会去应用程序文件夹的ERB-INF下查找对应的[servlet-name]-servlet.xml文件,例如本例的是springmvc,默认查找的就是/WEB-INF/springmvc-servlet.xml。
- 也可以把Spring MVC的配置文件放到应用程序文件夹汇总的任何地方,用servlet元素的init-param子元素进行描述,本列的param-name元素的值contextConfigLocation表示参数名称,param-value元素的值/WEB-INF/springmvc-config.xml则表示Spring MVC的配置文件路径和名称。则DispatcherServlet会查找/WEB-INF/springmvc-config.xml文件,作为Spring MVC的配置文件,解析该文件内容并根据文件配置信息创建一个WebApplicationContext容器对象,也称为上下文环境。WebApplicationContext继承自ApplicationContext容器,它的初始化方式和BeanFactory、ApplicationContext有所区别,因为WebApplicationContext需要ServletContext实例,也就是说,它必须在拥有Web容器的前提下才能完成启动Spring Web应用上下文的工作。