关于spring和spring MVC的知识点总结

关于spring和spring MVC的知识点总结

文章目录

  • 关于spring和spring MVC的知识点总结
  • 一、Spring
    • 1.IOC控制反转
    • 2.AOP面向切面编程
  • 二、Spring MVC
    • 1.spring MVC和struts2的区别?
    • 2.spring MVC的原理以及返回数据如何渲染到jsp/html上?


一、Spring

Spring作为一个基于javaEE的轻量级开源框架。

广义上来说,Spring经过发展目前已经成为了一个包含不同子模块非常成熟的技术,根据所需要的需求开发者使用不同的模块,其中Spring Framwork作为其他所有子模块的基础。而从狭义上来说,Spring特指Spring Framwork框架,包含两个核心部分:IOC(控制反转)和AOP(面向切面编程)。

关于spring和spring MVC的知识点总结_第1张图片

1.IOC控制反转

spring通过IOC控制反转来管理Java对象的实例化和初始化,控制对象和对象间依赖关系。

过程:提前通过注释或者配置的方法在xml配置文件中对Java对象进行定义,IOC容器会根据对象的定义把这些对象(也就是springbean)创建管理起来,如果开发者需要使用到某些对象bean,则需要通过IOC的applicationcontext.getbean( )方法获取出来。

2.AOP面向切面编程

AOP面向切面编程
在没有面向切面编程的时候,我们在写逻辑处理业务代码的时候需要些日志记录、事务控制、权限控制。但这些业务代码的核心实现部分其实只有几行,所以面向切面编程就是将这些核心代码整合起来,当需要使用时则使用容器注入,使业务逻辑处理代码简洁,提高了效率。
比如说我的用户模块,由容器创建的UserService的动态对象实例,在用户管理业务逻辑组件UserService中,用户的新增或者修改过程中,使用切面和切点将日志记录、事务控制、权限控制给注入进去。

二、Spring MVC

Spring MVC (Spring Model View Control)是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet。

MVC模式:控制层负责前台与后台的交互,数据模型层封装用户的输入/输出数据,视图层选择恰当的视图来显示最终的执行结果,这样的层次分明的软件开发和处理流程被称为 MVC 模式。

Spring MVC 是结构最清晰的 Servlet+JSP+JavaBean 的实现,即从SJJ中演变而来的,是一个典型的教科书式的 MVC 构架,不像 Struts 等其它框架都是变种或者不是完全基于 MVC 系统的框架。

关于spring和spring MVC的知识点总结_第2张图片
spring MVC: model处理接受请求、view对处理结果进行渲染、control等同于servlet,控制前后台间的交互以及请求调用的处理。角色分工定位清晰。

spring MVC优点
1.model view control 角色定位清晰
2.通过xml灵活配置文件
3.与spring框架无缝集成
4.提供了大量控制器借口和实现类
5.开发者可以自己实现控制器接口
6.真正做到与view层的实现无关

springMVC执行流程
1.用户发出http request请求,该请求会被提交到DispatcherServlet(前段控制器)中。
2.DispatherServlet请求一个或者多个HandlerMapping(处理器映射器),并返回一个执行链(HandlerExecutionChain)。
3.DispatherServlet将执行链返回的Handler信息发送给HandlerAdapter(处理器适配器)。
4.HandlerAdapter 根据 Handler 信息找到并执行相应的 Handler(常称为 Controller);
5.Handler 执行完毕后会返回给 HandlerAdapter 一个 ModelAndView 对象(Spring MVC的底层对象,包括 Model 数据模型和 View 视图信息);
6.HandlerAdapter 接收到 ModelAndView 对象后,将其返回给DispatcherServlet ;
7.DispatcherServlet 接收到 ModelAndView 对象后,会请求 ViewResolver(视图解析器)对视图进行解析;
8.ViewResolver 根据 View 信息匹配到相应的视图结果,并返回给 DispatcherServlet;
9.DispatcherServlet 接收到具体的 View 视图后,进行视图渲染,将 Model 中的模型数据填充到 View 视图中的 request 域,生成最终的 View(视图);
10.视图负责将结果显示到浏览器(客户端)。

关于spring和spring MVC的知识点总结_第3张图片

1.spring MVC和struts2的区别?

springMVC是基于方法开发,而Struts2基于Action类开发。Struts2每当接受请求时就创建一个action,然后调用setter getter方法把请求request中的数据注入到Struts2中去;springMVC:springMVC则将请求路径URL于controller类的方法进行映射绑定,把请求数据注入到springMVC中对应方法的形参上。
springMVC可以使用单例开发模式,Struts2只能使用多例开发模式。

2.spring MVC的原理以及返回数据如何渲染到jsp/html上?

Spring MVC的核心就是DispatcherServlet,一个请求经过DispatherServlet,转发给HandlerMapping,然后在反射对应到Controller及其里面方法的@RequestMapping地址,最后经过ModelAndView和ViewResoler返回给对应视图

@Controller 注解用于声明某类的实例是一个控制器。
@RequestMapping 就负责将请求映射到对应的控制器方法上。

代码如下(示例):视图解析器中 内部资源视图解析器InternalResourceViewResolver

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceViewResolver"/> <!--可以省略-->
    <!--前缀-->
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <!--后缀-->
    <property name="suffix" value=".jsp"/>  
 </bean>

关于springMVC的视图解析器详解(点击此处)

你可能感兴趣的:(mvc,spring,java)