springmvc篇-01springmvc概述

1.1说说你对于spring mvc的理解

model1时代

整个web应用几乎全部用jsp组合而成,只用少量的javabean来进行数据库的连接、访问等操作。
在这里插入图片描述
A

但是这种模式下面JSP既是控制层(Controller)又是视图层(View).显而易见存在着很多问题,比如控制逻辑和表现逻辑杂揉在了一起,导致代码重用率极低;再比如前端后端相互依赖,难以测试维护并且发效率低。

model2时代

  • Model:系统涉及的数据,也就是 dao 和 bean。
  • View:展示模型中的数据,只是用来展示。
  • Controller:处理用户请求都发送给 ,返回数据给 JSP 并展示给用户。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8nSUzDwK-1628683663342)(https://camo.githubusercontent.com/b36a90d56dae552146126cf76f8de218f5d545d9df9d65a7eb84283157f46475/68747470733a2f2f67756964652d626c6f672d696d616765732e6f73732d636e2d7368656e7a68656e2e616c6979756e63732e636f6d2f6a6176612d67756964652d626c6f672f6d76632d6d6f64656c322e706e67)]

但是model2模式下还是存在很多的问题,比如说model2的抽象和封装程度做的远远不够,使用model2开发时会重复的造轮子,大大降低了程序的可维护性和可重用性。

springmvc时代

随着spring轻量级开发框架的流行,spring生态圈出现了spring mvc框架。springmvc可以帮助我们更简洁的进行web层的开发,她天生与spring框架继承。

springmvc中一般把后端项目分为service层(处理业务),dao层(数据库操作),entity层(实体类),controller层(控制层,返回数据给前台页面)

1.2springmvc的工作原理

img

流程说明:

1.客户端发起请求,直接请求到DispatcherServlet。

2.DispatherServlet根据请求信息调用HandlerMapping,解析请求对应的Handler.

3.解析到对应的Handler后,开始由HandlerAdapter适配器进行处理。

4。HandlerAdapter会根据Handler调用真正的处理器请求处理,并且处理相应的业务逻辑。

5.处理器处理完业务后,返回一个ModelAndView对象。model是返回的数据对象,view是个逻辑上的view。

6.viewResolver根据逻辑view查找实际的view。

7.DispathcerServlet把返回model传给view(视图渲染)。

8.把view返回给请求者(浏览器)

1.3spring框架中用到的设计模式(待更新。。。)

  • 工厂设计模式 : Spring 使用工厂模式通过 BeanFactoryApplicationContext 创建 bean 对象。
  • 代理设计模式 : Spring AOP 功能的实现。
  • 单例设计模式 : Spring 中的 Bean 默认都是单例的。
  • 模板方法模式 : Spring 中 jdbcTemplatehibernateTemplate 等以 Template 结尾的对数据库操作的类,它们就使用到了模板模式。
  • 包装器设计模式 : 我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库。这种模式让我们可以根据客户的需求能够动态切换不同的数据源。
  • 观察者模式: Spring 事件驱动模型就是观察者模式很经典的一个应用。
  • 适配器模式 : Spring AOP 的增强或通知(Advice)使用到了适配器模式、spring MVC 中也是用到了适配器模式适配Controller

1.4

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值