首页 > 其他分享 >SpringMVC知识

SpringMVC知识

时间:2022-11-21 15:37:59浏览次数:62  
标签:控制器 JDK SpringMVC Spring 知识 代理 视图 DispatcherServlet

1 Spring 框架

Spring 框架指的都是 Spring Framework,它是很多模块的集合,使用这些模块可以很方便地协助我们进行开发。

Spring 自带 IoC(Inverse of Control:控制反转) 和 AOP(Aspect-Oriented Programming:面向切面编程)、可以很方便地对数据库进行访问、可以很方便地集成第三方组件(电子邮件,任务,调度,缓存等等)、对单元测试支持比较好、支持 RESTful Java 应用程序的开发。

IOC: 控制反转,依赖注入(DI)。比喻A对象创建时,注入到Spring容器,容器会为A对象创建所需要的B对象,由主动变为被动。

AOP: 分为JDK动态代理(实现了接口的类生成代理),CGlib动态代理(类实现代理)

什么时候用JDK动态代理,什么时候用CJLIB动态代理
1、目标对象生成了接口 默认用JDK动态代理
2、如果目标对象使用了接口,可以强制使用cglib
3、如果目标对象没有实现接口,必须采用cglib库,Spring会自动在JDK动态代理和cglib之间转换
Cglib和JDK的效率比较
1、cglib底层是ASM字节码生成框架,但是字节码技术生成代理类,在JDL1.8之后比使用java反射的效率要低
2、Cglib不能对声明final的方法进行代理,因为cglib是动态生成代理对象,final关键字修饰的类不可变只能被引用不能被修改
Spring如何选择是用JDK还是cglib
1、当bean实现接口时,会用JDK代理模式
2、当bean没有实现接口,用cglib实现
3、可以强制使用cglib(在spring配置中加入<aop:aspectj-autoproxy proxyt-target-class=”true”/>)

2 什么是Spring MVC

  • MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。

  • 是将业务逻辑、数据、显示分离的方法来组织代码。

  • MVC主要作用是降低了视图与业务逻辑间的双向偶合。

  • MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。

Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Service)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。

View(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。

Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。也就是说控制器做了个调度员的工作。

@Controller注解类型用于声明Spring类的实例是一个控制器

3 SpringMVC执行原理

 

  • DispatcherServlet表示前置控制器,是整个SpringMVC的控制中心。用户发出请求,DispatcherServlet接收请求并拦截请求(Strust2 --> Springboot)
  • HandlerMapping为处理器映射。DispatcherServlet调用 HandlerMapping,HandlerMapping根据请求url查找Handler。

  • HandlerExecution表示具体的Handler,其主要作用是根据url查找控制器,如上url被查找控制器为:hello。

  • HandlerExecution将解析后的信息传递给DispatcherServlet,如解析控制器映射等。

  • HandlerAdapter表示处理器适配器,其按照特定的规则去执行Handler。

  • Handler让具体的Controller执行。

  • Controller将具体的执行信息返回给HandlerAdapter,如ModelAndView。

  • HandlerAdapter将视图逻辑名或模型传递给DispatcherServlet。

  • DispatcherServlet调用视图解析器(ViewResolver)来解析HandlerAdapter传递的逻辑视图名。

  • 视图解析器将解析的逻辑视图名传给DispatcherServlet。

  • DispatcherServlet根据视图解析器解析的视图结果,调用具体的视图。

  • 最终视图呈现给用户。

4 RestFul风格

Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

资源:互联网所有的事物都可以被抽象为资源

资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作。

分别对应 添加、 删除、修改、查询。

传统方式操作资源 :通过不同的参数来实现不同的效果!方法单一,post 和 get

 

 

资源

https://www.cnblogs.com/twq46/p/16601237.html

 

标签:控制器,JDK,SpringMVC,Spring,知识,代理,视图,DispatcherServlet
From: https://www.cnblogs.com/ningshare/p/16911495.html

相关文章

  • 渗透测试基础知识
    域名:1.什么是域名2.域名在哪里注册? 万网,阿里云3.什么是二级域名多级域名?顶级域名(一级域名):分为三类: 国家顶级域名  (例如 中国.cn 美国.us)、地区顶级域名......
  • springmvc 项目启动后自动运行方法
    packagecom.jeeplus.modules.asr.config;importcom.jeeplus.common.config.Global;importcom.jeeplus.modules.asr.netty.server.UDPServer;importcom.jeeplus.modu......
  • SpringMVC - RestFul
    一、RestFul是一个请求路径的风格,将请求参数放在url中以/来分割请求参数。url:/delete/1    1就是参数RestFul的请求方式对应的是不同的操作get : 查询post:......
  • JDBC知识
    1jdbc是什么?JavaDateBaseconnectivity,java数据库连接,java语言连接数据库JDBC本质:sun公司定义了一套操作所有关系型数据库的规则(接口),各个数据库厂商去实现这套数据库,提......
  • 护肤知识总结
    1.辨别自己的肤质脸部皮肤可以分成3个区域:T区:额头以及鼻子U区:脸颊以及下巴外C区:脸部外轮廓怎么判断:洗面奶洗完脸隔一个小时左右,什么护肤品都不擦。根据3个......
  • 297个机器学习彩图知识点(5)
    导读本系列将持续更新20个机器学习的知识点。1.岭回归2.安斯库四重奏3.偏差方差4.自助采样法5.能力6.最优化算法7.常见激活函数8.凹凸函数9.条......
  • SpringMVC - 获取请求参数,作用域
    一、获取请求参数1.原生serveltAPI@ControllerpublicclassTestController{@RequestMapping("/test01")publicStringtest01(HttpServletRequestrequest){......
  • 【博学谷学习记录】超强总结,用心分享 集合重要知识点。
    集合1.1常见的数据结构常见的数据结构有:数组、栈、队列、链表、树、散列、堆、图等。数组是最常用的数据结构,数组的特点是长度固定,数组的大小固......
  • SQL知识
    SQL语句常用命令1表设计https://blog.csdn.net/weixin_50906078/article/details/1239226521.1创建表createtable表名(字段字段类型);单列主键示例(Oracle):CREATE......
  • 常用硬件接口知识
    VGA接口VGA(VideoGraphicsArray)视频图形阵列是IBM于1987年提出的一个使用模拟信号的电脑显示标准。VGA接口即电脑采用VGA标准输出数据的专用接口。VGA接口共有15针,分成3排......