以Tomcat为例,想在Web容器中使用Spirng MVC,必须进行四项的配置:
修改web.xml,添加servlet定义、编写servletname-servlet.xml( servletname是在web.xm中配置DispactherServlet时使servlet-name的值) 、配置contextConfigLocation初始化参数、配置ContextLoaderListerner。
<!-- servlet定义 -->
<servlet>
<servlet-name>vincent</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>vincent</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- 配置contextConfigLocation初始化参数 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/vincent-service.xml,/WEB-INF/vincent- dao.xml</param-value>
</context-param>
<!-- 配置ContextLoaderListerner -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
DispatcherServlet:前端处理器,接受的HTTP请求和转发请求的类。
vincent-servlet.xml:定义DispatcherServlet中WebAppliactionContext上下文中的bean。
contextConfigLocation:指定Spring IoC容器需要读取的定义了非web层的Bean(DAO/Service)的XML文件路径。使用 contextConfigLocation 加载指定路径的配置文件时,多个配置文件可以用逗号,冒号,空格, \t,\n 中任一个来分隔。
如果没有指定contextConfigLocation 参数,ContextLoaderListener会默认加载/WEB-INF/applicationContext.xml这个配置文件。springmvc将由ContextLoaderListener 载入的application context 叫做 "root application context" ,以区别于servlet的application context。
springmvc可以配置多个servlet,每一个 servlet都拥有各自的application context,相互之间不能相互访问。但是"root application context"却是对所有servlet都是可见的。
ContextLoaderListener:Spring MVC在Web容器中的启动类,负责Spring IoC容器在Web上下文中的初始化。
根据前面的配置,DispatcherServlet已经载入court-servlet.xml。你可以将系统中所有的bean都配置在court-servlet.xml中,但是最后这个文件会非常臃肿,最佳实践是对每一层(web、biz、dal)进行单独配置,至少要区分web层配置和biz层的配置。
最后,该servlet application context将root application context设置为parent,然后加载完成。
Spring MVC启动过程大致分为两个过程:1、ContextLoaderListener初始化,实例化IoC容器,并将此容器实例注册到ServletContext中。2、DispatcherServlet初始化。
DispatcherServlet初始化配置如下:
servlet application context的加载策略类似于root application context,首先会查找是否配置了servlet的init-param "contextConfigLocation",如果有,就使用 contextConfigLocation 指定的路径加载的配置文件时,多个配置文件可以用逗号,冒号,空格, \t,\n 中任一个来分隔。
为了保证所有的配置文件都可以被载入,我们需要在web.xml文件中配置一个上下文载入器。
如果没有指定"contextConfigLocation"参数,则会在 /WEB-INF/下查找 "servlet-name"+"-servlet.xml" 这样的文件加载。如下配置所示,就是/WEB-INF/springDispatcherServlet-servlet.xml 。
Xml代码
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/servlet-applicationContext.xml,WEB-INF/service-applicationContext.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>/mvc/*</url-pattern>
</servlet-mapping>
以后在应用里调用applicationContext或者beanFactory的getBean方法去获取实例的时候,都是先尝试从"root application context"获取,获取不到,再到当前application context里获取。
分享到:
相关推荐
在Spring MVC中,`org.springframework.web.context.ContextLoaderListener`是一个关键监听器,它实现了`ServletContextListener`接口。当Web应用程序启动时,Tomcat或Jetty等容器会触发此监听器,进而加载Spring的...
在本文中,我们将探讨Spring在`web.xml`中的配置与在Struts中的配置差异,以及这两种配置方式背后的基本原理。 首先,Spring的核心是ApplicationContext,它是一个管理Bean的容器,可以看作是应用程序的上下文环境...
org.springframework.web.context.ContextLoaderListener <context-param> <param-name>contextConfigLocation <param-value>classpath:config/applicationContext.xml </context-param> ``` 四、spring-...
当我们谈论“加载Spring文件,在web.xml中的配置”时,主要是指如何在Web应用启动时初始化Spring IoC(Inversion of Control,控制反转)容器并加载配置文件。 1. **使用ContextLoaderListener** `<listener>`标签...
Spring MVC的web.xml配置详解 Spring MVC是目前最流行的框架之一,在创建Java Web项目时,web.xml配置文件是Java Web为我们封装的逻辑,不在今天的研究中。web.xml配置文件是Spring MVC框架的核心配置文件,它定义...
import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation....
在实际项目中,为了提高可维护性和灵活性,可能会使用Spring的`@WebServlet`、`@WebFilter`和`@WebListener`注解替代部分`web.xml`配置,或者采用Java Config方式来配置应用程序。但`web.xml`仍然保留其核心地位,...
<filter-class>org.springframework.web.context.ContextLoaderFilter <filter-name>contextLoaderFilter <url-pattern>/* ``` 这部分配置将Struts2的过滤器和Spring的上下文加载过滤器映射到所有的URL,确保...
这是一个springmvc-config.xml文件,<?xml version="1.0" encoding="UTF-8"?> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:...
一旦XML配置加载到Spring容器中,容器将根据配置创建Bean实例,并按照定义进行初始化、依赖注入,最后完成Bean的生命周期管理。 10. **实践操作**: 在实际开发中,我们可以使用Eclipse的Spring插件来简化Bean...
5. **servlet**:定义了一个名为 `ideawu` 的Servlet,实际类是 `org.springframework.web.servlet.DispatcherServlet`,它是Spring MVC的核心组件,负责调度请求到对应的控制器。 6. **servlet-mapping**:将 `...
《web.xml配置归纳》 ...总结来说,`web.xml`是Java Web应用的灵魂,通过精确配置,我们可以控制Spring的上下文加载、过滤器的执行、MVC框架的行为、日志系统的初始化以及Ajax框架的功能,实现高效且定制化的Web应用。
在实际开发中,`spring-mvc-4.2.xsd`通常被引用在Spring配置文件(如`applicationContext.xml`或`servlet-context.xml`)的顶部,通过`xsi:schemaLocation`属性来指定: ```xml <beans xmlns="http://www.spring...
org.springframework.web.context.ContextLoaderListener <!-- 指定 Spring Bean 的配置文件所在目录。默认配置在 WEB-INF 目录下 --> <context-param> <param-name>contextConfigLocation <param-value>...
<filter-class>org.springframework.web.filter.CharacterEncodingFilter <param-name>encoding <param-value>utf-8 <filter-name>encodingfilter <url-pattern>/* ``` **解析**:这里定义了一个字符...
`beans.xml`管理应用对象,`servlet-context.xml`定义Spring MVC的处理逻辑,`mybatis-config.xml`配置MyBatis的数据访问,而`web.xml`则作为应用的入口,协调各个组件的启动和运行。理解并熟练配置这些文件,对于...
在Spring MVC的配置文件(通常为`servlet-context.xml`)中,我们需要声明拦截器并将其添加到`<mvc:interceptors>`标签下。以下是一个示例配置: ```xml <beans xmlns="http://www.springframework.org/schema/...
在早期的Spring应用中,配置主要通过XML文件完成,但随着Spring的发展,Java Config的出现使得我们可以使用纯Java代码来配置应用,减少了XML的使用,提高了可读性和维护性。本篇文章将指导你如何快速搭建一个不依赖...
09. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 10. </listener> 11. 12. <servlet> 13. <servlet-name>spring</servlet-name> 14. <servlet-class>org.spring...
在Spring MVC框架中,注解方式的配置是现代开发中常用的方法,它使得代码更加简洁,减少了XML配置的复杂性。下面将详细讲解如何通过注解实现Spring MVC的Controller控制器,以及如何设置访问路径。 首先,`Model1....