深入浅出Spring MVC

知识先知-MVC模型

MVC模型: 包含了 Model(模型),View(视图),Controller(控制器);放在三层架构中,属于表现层模型。其中,Model 通常是的就是 JavaBean。View 通常指的是 JSP 或者 HTML(展示资源的数据)。Controller 通常指的是 Servlet 或者 Filter,以及框架中封装的各类控制器。

资源:

  • 静态资源:html、css、JavaScript等
  • 动态资源:jsp、servlet、filter等

JavaBean: 一种 Java 语言写成的可重用组件。这里容易把 JavaBean 和 java 实体对象混为一体;其实前者是包含后者的,正是因为后者具有 JavaBean 可重用的特性和相关的属性,所以再开发过程中,我们经常把 java 实体对象成为 JavaBean 对象。

前因后果-MVC表现层模型

1.在很久以前项目开发中采用一种称为 Model1 的模型,只有 jsp 和JavaBean 两部分组成。

  • 优点:结构简单,开发效率高。
  • 缺点:JSP 兼顾于展示数据(数据展示)和处理数据(逻辑处理),同时由于逻辑代码写在 JSP 中,导致代码重用性也很低,进而维护极为不便;JavaBean 此时充当了数据持久层、业务处理层、实体层的角色。

2.在 Model1 的基础上,慢慢演化成 Model2,由 servlet 和 jsp 以及JavaBean 三部分组成。

  • 优点:将处理请求和展示数据进行分离,此时 JSP 专注于展示数据,处理请求交给控制器负责,大大提高了代码的重用性和维护性。其实这便是 MVC 模型的原型,慢慢进一步演化成 MVC 模型。 但是在具备如此的优势的前提下,具有不可避免的弊端。
  • 缺点:JSP 界面负责翻译 Java 代码,同时需要编译成 .class 文件才可以执行,然后展示,相比于浏览器解析 HTML,相应速度慢。
    异步交互不方便,同时在 JavaScript 的请求数据(逻辑)和展示数据(元素填充)交织在一起,同样没有将数据渲染和逻辑处理分离。

目前,前端主流的框架 Angualr,VUE,React 等采用 MVVM 模型,改良了展示数据的部分。

过程分析-SpringMVC

我们知道的是存在一个 Controller(底层Servlet),帮助我们处理用户发送到的请求。
SpringMVC执行过程
1.按照执行流程分析,首先是通过 FrontController(前端控制器)中的 DispatcherServlet,帮助接收用户发送的请求;
2.然后找到 RequestMappingHandlerMapping(处理器映射器),确定哪个类,哪个方法,其实在服务端启动的时候,处理器映射器便开始将 @requestMapping 注解和控制器方法进行一一对应,这里是在已经对应的 Map 中确定那一个键值对;
3.然后再由前端控制器,交由处理器适配器,执行具体的方法。
这两个处理器,一般我们都直接进行配置,代码块,也可以进行单独配置。

一、整体配置,简洁明了
<mvc:annotation-driven></mvc:annotation-driven> 帮助我们在容器中添加很多的bean
二、单独配置,直观可见
// 处理器映射器
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>
// 处理器适配器
<bean id="requestMappingHandlerAdapter"
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingH
andlerAdapter"></bean>

4.最后在处理完,进行数据显示的时候会用到视图解析器,这个配置需要单独进行配置。

解析:模板视图对象套用底层模板,经过视图解析器,生成不同类型的视图,JSP 就是其中的一种,例如 JSON 视图、XML 视图等;视图解析器在整个过程中将逻辑视图转为物理视图,所有的视图解析器都必须实现 ViewResolver 接口。

但是针对于现在前后端分离的项目,如果无需进行页面跳转的话,也就是Ajax 的异步请求,通过 json 数据交互时,可以不配置任何视图解析器。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
MyBatis是一个流行的Java持久化框架,它提供了一种简单且灵活的方式来访问数据库。MyBatis的配置文件对整个框架的使用产生深远的影响,因此我们需要认真学习它。[1]配置文件中包含了数据库连接信息、映射器配置、SQL语句等重要内容,通过配置文件可以实现对数据库的增删改查操作。 除了配置文件,MyBatis最强大的工具之一是映射器。映射器是用于定义SQL语句和Java方法之间映射关系的工具,我们在使用MyBatis时会经常使用到它。[1]映射器可以将数据库表的字段映射到Java对象的属性上,使得我们可以方便地进行对象与数据库之间的转换。 在实际工作中,我们经常会遇到一些特殊的场景,需要灵活运用MyBatis来解决问题。比如处理数据库的BLOB字段的读写、批量更新、调用存储过程、分页、使用参数作为列名、分表等等。[2]这些场景都是通过实战总结出来的,具有较强的实用价值,可以帮助我们更好地应对实际开发中的需求。 此外,MyBatis和Spring框架的结合也是非常常见的。Spring框架是Java世界最流行的IOC和AOP框架之一,而MyBatis和Spring的结合可以构建高性能的大型网站。[3]通过使用Spring MVC和MyBatis,我们可以充分发挥它们的优势,实现灵活可配置的SQL操作,从而构建高性能的Java互联网应用。 总结起来,深入浅出地学习MyBatis的技术原理和实战经验,可以帮助我们更好地理解和应用这个持久化框架,提高开发效率和代码质量。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值