Spring MVC 原理

Spring MVC 原理

Spring 的模型-视图-控制器(MVC)框架是围绕一个 DispatcherServlet 来设计的,这个 Servlet 会把请

求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能

支持文件上传。

MVC 流程

Http 请求到DispatcherServlet

(1) 客户端请求提交到 DispatcherServlet

HandlerMapping 寻找处理器

(2)  DispatcherServlet 控制器查询一个或多个 HandlerMapping,找到处理请求的

Controller。调用处理器Controller

(3) DispatcherServlet 将请求提交到 Controller

Controller 调用业务逻辑处理后,返回ModelAndView

(4)(5)调用业务处理和返回结果:Controller 调用业务逻辑处理后,返回 ModelAndView

DispatcherServlet 查询ModelAndView

(6)(7)处理视图映射并返回模型: DispatcherServlet 查询一个或多个 ViewResoler 视图解析器,找到

ModelAndView 指定的视图。

ModelAndView 反馈浏览器HTTP

(8) Http 响应:视图负责将结果显示到客户端。

MVC 常用注解

Spring AOP的实现原理和场景;

AOPAspect Orient Programming),作为面向对象编程的一种补充,广泛应用于处理一 些具有横切

性质的系统级服务。

一、场景

事务管理、安全检查、权限控制、数据校验、缓存、对象池管理等

二、实现技术

AOP(这里的AOP指的是面向切面编程思想,而不是Spring AOP)主要的的实现技术主要有 Spring

AOPAspectJ

1AspectJ的底层技术。 AspectJ的底层技术是静态代理,即用一种AspectJ支持的特定语言编写切

面,通过一个命令来 编译,生成一个新的代理类,该代理类增强了业务类,这是在编译时增强,相对于

下面说的运行 时增强,编译时增强的性能更好。2Spring AOP Spring AOP采用的是动态代理,在运行期间对业务方法进行增强,所以不会生成新

类,对于 动态代理技术,Spring AOP提供了对JDK动态代理的支持以及CGLib的支持。 

JDK动态代理只能为接口创建动态代理实例,而不能对类创建动态代理。需要获得被目标类的 接口信息

(应用Java的反射技术),生成一个实现了代理接口的动态代理类(字节码),再通过 反射机制获得动

态代理类的构造函数,利用构造函数生成动态代理类的实例对象,在调用具体方 法前调用

invokeHandler方法来处理。 

CGLib动态代理需要依赖asm包,把被代理对象类的class文件加载进来,修改其字节码生成 子类。 

Spring AOP基于注解配置的情况下,需要依赖于AspectJ包的标准注解。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老歪不歪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值