Spring项目的配置文件解析

作者:ssunday

坐标:江苏 南京

TIP: 这个建议是针对于那些还在执着于 eclipse 编程的小伙伴们,既然我们都在使用的是 Spring 的框架,那么为什么部选择一款 Spring 的 IDEA ,强烈给大家推荐一款编辑器:### Spring Tool Suite™ (STS)。

Spring MVC集成了Spring对象管理、“约定大于配置(CoC)”、函数式编程的思想以及现有MVC框架的特点于一身,成为Java领域Web项目中最流行的MVC框架。

当今流行的还有就是微服务使用的框架:Spring Boot,当然 Spring Boot 提倡的是 “习惯优与配置”。在Spring Boot 中使用大量的注解代替了 Xml 的配置问题,极大的简化了开发人员的,需要去解决不同需求的配置问题。有兴趣的同学可以去看下这本书《Spring Boot 实战》。

——好的回到我们今天的标题内容:

本文主要讨论的是:web.xml, root-context.xml, servlet-context.xml

web.xml: web.xml可以说是Web项目的驱动配置,Spring及Spring MVC的初始化就是写在这里。




    
    
    
        contextConfigLocation
        /WEB-INF/spring/root-context.xml
    
    
    
    
    
        org.springframework.web.context.ContextLoaderListener
    

    
    
    
        appServlet
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            /WEB-INF/spring/appServlet/servlet-context.xml
        
        1
    
        
    
        appServlet
        /
    



web.xml 的加载过程:

  • 当我们去启动一个 web 项目的时候,首先会加载 web.xml 这个文件,只有当这个文件加载完成,并且没有发生错误的时候项目才会启动。
  • 启动项目的时候会首先读取 web.xml 这个配置文件的两个节点,
  • 紧接着,容器创建一个ServletContext(application),这个WEB项目所有部分都将共享这个上下文。
  • 容器以的name作为键,value作为值,将其转化为键值对,存入ServletContext。
  • 容器创建中的类实例,根据配置的class类路径来创建监听,在监听中会有contextInitialized(ServletContextEvent args)初始化方法,启动Web应用时,系统调用Listener的该方法,在这个方法中获得:
ServletContext application =ServletContextEvent.getServletContext();
context-param的值= application.getInitParameter("context-param的键");
  • 得到这个context-param的值之后,你就可以做一些操作了。
  • 接下来容器会读取 当然如果有filter,然后实例化这个filter。
  • 到这里整个项目还没有完全启动,最后是 在用户第一次请求的时候会实例化这个servlet。

到这里整个web.xml 就实例化结束了,综上所述:真个过程可以总结为

---> --->--->

配置

DispatcherServlet类是Spring MVC的转发控制器,所以需要指明初始化DispatcherServlet类的必要信息。此例中是设置contextConfigLocation参数的值为/WEB-INF/spring/appServlet/servlet-context.xml,Spring MVC框架的controller配置、静态资源配置、上传文件配置都是写在这个xml文件中。

servlet-context.xml


 

    

    
    
    

    
    

    
    
        
        
    

    
    



root-context.xml



    
    
        


你可能感兴趣的:(Spring项目的配置文件解析)