美文网首页
Spring与Spring mvc

Spring与Spring mvc

作者: ZMRWEGo | 来源:发表于2018-08-25 14:35 被阅读2次
    spring 提供了构建 Web 应用程序的全功能 MVC 模块,而 Spring MVC 就是其中最优秀的 MVC 框架。自从 Spring 2.5 版本发布后,由于支持注解配置,易用性得到了大幅度的提高;Spring 3.0 更加完善,实现了对 Struts 2 的超越。其框架结构如下: 框架图

    其中DispatcherServlet、HandlerMapping和ViewResolver 只需要在XML文件中配置即可,从而大大提高了开发的效率,特别是对于 HandlerMapping 框架为其提供了默认的配置。

    • spring容器

    在Spring整体框架的核心概念中,容器是核心思想,就是用来管理Bean的整个生命周期的,而在一个项目中,容器不一定只有一个,Spring中可以包括多个容器,而且容器有上下层关系,目前最常见的一种场景就是在一个项目中引入Spring和SpringMVC这两个框架,那么它其实就是两个容器,Spring是父容器,SpringMVC是其子容器,并且在Spring父容器中注册的Bean对于SpringMVC容器中是可见的,而在SpringMVC容器中注册的Bean对于Spring父容器中是不可见的,也就是子容器可以看见父容器中的注册的Bean,反之就不行。通过xml文件对bean进行批量注册,交由spring容器处理:

    <context:component-scan base-package="com.hust" use-default-filters="true">
        <!--不把Controller注册为bean dispatcher-servlet扫描Controller-->
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"></context:exclude-filter>
    </context:component-scan>
    

    Controller交由spring mvc容器处理:

     <context:component-scan base-package="com.hust" use-default-filters="false">
        <!--只扫描控制器-->
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"></context:include-filter>
    </context:component-scan>
    
    • 容器启动过程

    spring容器启动过程图
    关于spring容器的详细启动过程,可以通过阅读spring源码来理解,这里有一篇很好的博客

    spring容器启动以后,通过读取配置文件来创建bean,再读取web.xml中的其他配置,例如过滤器等一系列的配置,之后还会创建一个spring mvc的容器,它一般只将Controller注册为bean,作为前端控制器来使用。

    相关文章

      网友评论

          本文标题:Spring与Spring mvc

          本文链接:https://www.haomeiwen.com/subject/spimiftx.html