`
lyjxaut
  • 浏览: 11117 次
文章分类
社区版块
存档分类
最新评论

spring mvc web.xml配置context加载

 
阅读更多
以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的web.xml配置说明

    在Spring MVC中,`org.springframework.web.context.ContextLoaderListener`是一个关键监听器,它实现了`ServletContextListener`接口。当Web应用程序启动时,Tomcat或Jetty等容器会触发此监听器,进而加载Spring的...

    spring在web.xml中和在struts中的不同配置..pdf

    在本文中,我们将探讨Spring在`web.xml`中的配置与在Struts中的配置差异,以及这两种配置方式背后的基本原理。 首先,Spring的核心是ApplicationContext,它是一个管理Bean的容器,可以看作是应用程序的上下文环境...

    spring MVC配置详解

    org.springframework.web.context.ContextLoaderListener &lt;context-param&gt; &lt;param-name&gt;contextConfigLocation &lt;param-value&gt;classpath:config/applicationContext.xml &lt;/context-param&gt; ``` 四、spring-...

    加载spring 文件,在web.xml中的配置

    当我们谈论“加载Spring文件,在web.xml中的配置”时,主要是指如何在Web应用启动时初始化Spring IoC(Inversion of Control,控制反转)容器并加载配置文件。 1. **使用ContextLoaderListener** `&lt;listener&gt;`标签...

    Spring MVC的web.xml配置详解

    Spring MVC的web.xml配置详解 Spring MVC是目前最流行的框架之一,在创建Java Web项目时,web.xml配置文件是Java Web为我们封装的逻辑,不在今天的研究中。web.xml配置文件是Spring MVC框架的核心配置文件,它定义...

    SpringMVC基于代码的配置方式(零配置,无web.xml)

    import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation....

    web.xml 配置大全

    在实际项目中,为了提高可维护性和灵活性,可能会使用Spring的`@WebServlet`、`@WebFilter`和`@WebListener`注解替代部分`web.xml`配置,或者采用Java Config方式来配置应用程序。但`web.xml`仍然保留其核心地位,...

    struts.xml和applicationContext.xml、web.xml的配置

    &lt;filter-class&gt;org.springframework.web.context.ContextLoaderFilter &lt;filter-name&gt;contextLoaderFilter &lt;url-pattern&gt;/* ``` 这部分配置将Struts2的过滤器和Spring的上下文加载过滤器映射到所有的URL,确保...

    springmvc-config.xml

    这是一个springmvc-config.xml文件,&lt;?xml version="1.0" encoding="UTF-8"?&gt; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:...

    spring bean XML配置入门

    一旦XML配置加载到Spring容器中,容器将根据配置创建Bean实例,并按照定义进行初始化、依赖注入,最后完成Bean的生命周期管理。 10. **实践操作**: 在实际开发中,我们可以使用Eclipse的Spring插件来简化Bean...

    一个简单的spring mvc实例.docx

    5. **servlet**:定义了一个名为 `ideawu` 的Servlet,实际类是 `org.springframework.web.servlet.DispatcherServlet`,它是Spring MVC的核心组件,负责调度请求到对应的控制器。 6. **servlet-mapping**:将 `...

    web.xml配置[归纳].pdf

    《web.xml配置归纳》 ...总结来说,`web.xml`是Java Web应用的灵魂,通过精确配置,我们可以控制Spring的上下文加载、过滤器的执行、MVC框架的行为、日志系统的初始化以及Ajax框架的功能,实现高效且定制化的Web应用。

    spring-mvc-4.2.xsd.zip

    在实际开发中,`spring-mvc-4.2.xsd`通常被引用在Spring配置文件(如`applicationContext.xml`或`servlet-context.xml`)的顶部,通过`xsi:schemaLocation`属性来指定: ```xml &lt;beans xmlns="http://www.spring...

    SPRING MVC配置过程

    org.springframework.web.context.ContextLoaderListener &lt;!-- 指定 Spring Bean 的配置文件所在目录。默认配置在 WEB-INF 目录下 --&gt; &lt;context-param&gt; &lt;param-name&gt;contextConfigLocation &lt;param-value&gt;...

    SSH和SSI等框架常用基础配置web.xml

    &lt;filter-class&gt;org.springframework.web.filter.CharacterEncodingFilter &lt;param-name&gt;encoding &lt;param-value&gt;utf-8 &lt;filter-name&gt;encodingfilter &lt;url-pattern&gt;/* ``` **解析**:这里定义了一个字符...

    springmvc、spring、mybatis的resources配置文件和web.xml

    `beans.xml`管理应用对象,`servlet-context.xml`定义Spring MVC的处理逻辑,`mybatis-config.xml`配置MyBatis的数据访问,而`web.xml`则作为应用的入口,协调各个组件的启动和运行。理解并熟练配置这些文件,对于...

    spring mvc xml配置拦截器

    在Spring MVC的配置文件(通常为`servlet-context.xml`)中,我们需要声明拦截器并将其添加到`&lt;mvc:interceptors&gt;`标签下。以下是一个示例配置: ```xml &lt;beans xmlns="http://www.springframework.org/schema/...

    快速搭建一个java config(无web.xml)的web工程(一)

    在早期的Spring应用中,配置主要通过XML文件完成,但随着Spring的发展,Java Config的出现使得我们可以使用纯Java代码来配置应用,减少了XML的使用,提高了可读性和维护性。本篇文章将指导你如何快速搭建一个不依赖...

    spring_MVC源码

    09. &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt; 10. &lt;/listener&gt; 11. 12. &lt;servlet&gt; 13. &lt;servlet-name&gt;spring&lt;/servlet-name&gt; 14. &lt;servlet-class&gt;org.spring...

    spring-mvc 注解方式xml配置

    在Spring MVC框架中,注解方式的配置是现代开发中常用的方法,它使得代码更加简洁,减少了XML配置的复杂性。下面将详细讲解如何通过注解实现Spring MVC的Controller控制器,以及如何设置访问路径。 首先,`Model1....

Global site tag (gtag.js) - Google Analytics