美文网首页
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