资讯专栏INFORMATION COLUMN

Spring框架之我见(四)——Spring MVC

shiina / 2952人阅读

摘要:是结构在框架中的一种表现形式。这句话听起来有点绕,我们可以看一下下面这张图,大家可以吧容器中的理解为全局变量,吧容器中的理解为局部变量。在方法体中可以访问局部变量和全局变量,但是在方法外,就只能访问全局变量,是不能访问局部变量的。

聊完了Spring,我们来看看Spring在web方面的应用Spring MVC。
MVC

首先我们来看什么是mvc?

大家知道在jsp里面也是可以写java代码的,但是如果我们这样做就会有一个问题,就是代码全部都杂糅在一起,无论是阅读还是修改都将变得十分的困难。

MVC是模型(model)-视图(view)-控制器(controller)的缩写,他将我们的程序分为个三部分,页面、控制层、模型层。这样使我们的程序的逻辑更清晰,更容易维护。

它以将我们的业务逻辑、数据与界面显示分离,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,提高编码效率。

Spring MVC

Spring MVC 是MVC结构在Spring框架中的一种表现形式。下面我们来看一下Spring MVC的结构:

由图可知,Spring MVC的具体流程如下:
1. 首先用户发送请求————>前端控制器(DispatcherServlet),前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;

2. 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,并进行验证。然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView(模型数据和逻辑视图名);

3. 前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染(ViewResolver),并把模型数据传入以便视图渲染。

4. 前端控制器再次收回控制权,将响应返回给用户;

大家可以把这想象成自己去医院看病的流程,前端控制器(DispatcherServlet)在这里就相当于一个医院前台的作用,我们看病时首先需要先到前台挂号,然后根据病情被分配到不同的科室,看完病之后还要再到前台去付钱拿药。

Spring和Spring MVC容器之间的关系

我们理解了Spring和Spring MVC,这里我们讨论一下Spring容器和Spring MVC容器之间的关系
首先要说明的是:一个项目中,容器不一定只有一个。
Spring容器用于管理Spring中的Bean,而Spring MVC容器用于管理Spring MVC中的Bean。Spring是父容器,Spring MVC是其子容器。并且在Spring MVC子容器中注册的Bean可以引用Spring父容器中注册的Bean,但在Spring容器中注册的Bean却不能引用Spring MVC容器中注册的Bean。

这句话听起来有点绕,我们可以看一下下面这张图,大家可以吧spring容器中的bean理解为全局变量,吧spring MVC容器中的bean理解为局部变量。在方法体中可以访问局部变量和全局变量,但是在方法外,就只能访问全局变量,是不能访问局部变量的。

这里我们要区分一下哪些bean是需要被SpringMVC管理的,最主要就是控制器(Controller),因为它需要与前端控制器交互。其他的可以都交给spring的容器管理。

下一节我们来聊聊,Spring的进阶版Spring Boot。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/68180.html

相关文章

  • Spring框架我见(三)——IOC、AOP

    摘要:模块负责的所有面向切面的功能。总结的统一管理,降低了对象之间的耦合对主流的框架提供了很好的集成支持提供众多组件,事务管理,等具有高度可开放性,开发者可以自由选择部分或全部主要使用工厂模式和代理模式。 聊完了Spring框架中最重要的两种设计模式,我们来看一下Spring框架的模块和结构图。 Spring框架的结构 下图是Spring官方给出的Spring框架的结构图。 showImg(...

    khs1994 评论0 收藏0
  • Spring框架我见(五)——Spring Boot

    摘要:通过我们可以更轻松地入门,更简单的使用的框架。团队为了摆脱框架中各类繁复纷杂的配置,使用约定优于配置的思想,在基础上整合了大量常用的第三方库的开发框架。这里还要说的一点,的出现并不是单纯的为了简化开发,更是为做铺垫。 说完了Spring 我们来聊聊Spring的进阶版Spring Boot,如果你还不知道Spring Boot,那希望这篇文章能够为你指明方向。 Spring Boot ...

    张巨伟 评论0 收藏0
  • Spring框架我见(六)——Spring Cloud

    摘要:系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。传统架构升级困难。新的轻量级协议容器化的出现。熔断处理在微服务出现问题时防止出现雪崩效应。 聊完Spring Boot,我们来看看Spring Boot最重要的一方面的应用——Spring Cloud。 Spring Cloud 再聊SpringCloud之前我们先聊聊微服务。 ...

    alighters 评论0 收藏0
  • Spring框架我见(二)——代理模式

    摘要:聊完了工厂模式,下面我们来说框架中的另一个核心设计模式代理模式。这里的外卖小哥就相当于是我们的代理。主要分为代理和代理。 聊完了工厂模式,下面我们来说Spring框架中的另一个核心设计模式——代理模式(Proxy Pattern)。 代理模式 大家可以先不用看概念,先举个吃饭的例子:比如说我们想吃饭,我们可以选择自己做饭吃、去饭店吃、叫外卖吃。如果我们选择自己做着吃,我们就需要去买菜、...

    oneasp 评论0 收藏0
  • Spring框架我见(一)——工厂模式

    摘要:相对于工厂模式,抽象工厂模式生产的对象更加具体,也更加丰富,但相对编码也更加复杂。具体的抽象工厂模式的实现大家可以参考菜鸟教程。知道了工厂模式和抽象工厂模式的区别,请大家使用的时候应该根据具体的情况进行选择。 大家好,今天给大家分享一些Spring的学习心得,在讲Spring之前,先和大家分享Spring中核心的设计模式。 工厂模式 在聊概念之前我先问问大家:什么是工厂? 这个很简单,...

    venmos 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<