想在Web容器中使用Spirng MVC,必须进行四项的配置:
修改web.xml,添加servlet定义、编写servletname-servlet.xml( servletname是在web.xm中配置DispactherServlet时使servlet-name的值) 、配置contextConfigLocation初始化参数、配置ContextLoaderListerner。
<!-- servlet定义 -->
<servlet>
<servlet-name>court</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>court</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- 配置contextConfigLocation初始化参数 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/court-service.xml</param-value>
</context-param>
<!-- 配置ContextLoaderListerner -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
DispactherServle会根据有它名字所定义的xml文件来加载一个spring应用上下文(webApplicationContext)。这个只是 web层 的bean。那我们以前定义的DAO 等层的bean 没必要放在这里来初始化。这时,ContextLoaderListerner(一个servlet监听器)就该发挥功能了。它是用来加载其他的配置文件到一个spring上下文中。这时我们没有告诉spring去哪里加载配置文件。它会默认查找/WEB-INF/applicationContext.xml这个配置文件。所以此时。我们必须在这个目录下建一个applicationContext.xml的配置文件。这样感觉不是很灵活。所以contextConfigLocation该发挥功能了。它的作用是指定ContextLoaderListerner去哪里去加载配置文件,并且这个还可以指定多个配置文件。contextConfigLocation参数指定了一个路径,除非特别声明,路径是相对于应用程序跟目录的!