持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第26天,点击查看活动详情
Spring MVC
Spring MVC概念
分离了控制器、模型对象、分配器以及处理程序对象角色。
优点
- 容易与其他view框架进行无缝集成,采用IOC便于测试
- 是一个典型的MVC框架,简单易学
- 与tapestry一样使用一个纯正的servlet系统,框架本身也有代码,简单容易理解
运行原理
- 由浏览器发布的HTTP请求由DispatcherServlet进行接收。
- DispatcherServlet根据接收的请求参考相应的servlet.xml配置寻找相应的处理器HandlerMapping
- DispatcherServlet调用相应的处理器controller进行处理。
- 处理调用模型服务xxxService处理业务
- 将得到的处理结果返回给DispatcherServlet.
- 进行视图映射,寻找相应的视图处理器
- 将模型数据传递给相应的视图View显示
- 视图解析,返回Http响应给浏览器
1.SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于SpringFrameWork的后续产品,已经融合在 Spring Web Flow 中。****
SpringMVC = Spring +MVC
- spring mvc类似于struts的一个MVC开框架,其实都是属于spring,spring mvc需要有spring的架包作为支撑才能跑起来.
spring是一个一站式的框架,提供了表现层(springmvc)到业务层(spring)再到数据层(springdata)的全套解决方案;spring的两大核心IOC(控制反转)和AOP(面向切面编程)更是给我们的程序解耦和代码的简介提供了支持。
从Spring的结构图可以看出,springMVC位于spring web端的一个框架,是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦。附:基于请求驱动指的就是使用请求-响应模型。
从名字上就可以窥探出,Spring>SpringMVC,那么事实上,spring和SpringMVC是一种父子关系。SpringMVC是spring扩展出的一个应用于web端的框架。在这里需要注意的一点,就是到底什么是父子容器关系:
spring主要的作用是黏合其他模块组件,进行统一管理,springmvc则主要是负责web端。那么,我们都知道,我们在应用spring的时候,可以使用注入。这个时候,如果我们的web端是用的SpringMVC,这个时候,controller理论上是通过SpringMVC去注入,但是,使用spring注入,同样是可行的。同理,service等层,使用SpringMVC配置的统一扫描装配也是可以的。所以,如果说只是为了使用spring的依赖注入,是大可不必将springMVC和spring同时使用的。他们完全可以分开!
但是,尽管SpringMVC和spring都可以进行自动装配扫描,值得注意的是:spring(父容器)并不能直接访问SpringMVC(子容器)所注入的对象,但是SpringMVC却可以访问到spring装载的对象。所以,在配置自动装配的时候,应该注意到这一点。