从MVC到前后端分离
一、MVC
MVC是一种非常经典的设计模式,全名为Model-View-Controller,即模型(M)-视图(V)-控制器(C)。
其中,模型是数据的载体,其本质是一个普通的Java Bean,包含一系列的成员变量及其方法。对于视图而言,它更加偏重于展现,也就是说,视图决定了用户界面(UI)最终的呈现,在Java中可通过JSP来充当视图,或者通过纯HTML的方式进行展现,而后者才是目前的主流。模型和视图需要通过控制器来进行粘合,例如,用户发送一个HTTP请求,此时该请求首先会进入控制器,然后控制器去获取数据并将其封装为模型,最后将模型传递到视图中才能展现。
二、MVC模式的缺点与不足
MVC模式早在上个世纪70年代就诞生了,直到今天它依然存在。Java中的Struts、Spring MVC等框架的出现,让MVC模式真正落地,让开发更加高效,让代码耦合度尽量减小,让应用程序各部分的职责更加清晰。
个人认为传统的MVC模式已经不能很好适应目前互联网应用的开发,原因如下:
目前的开发过程中大多是接口先行,而用户界面随时都在调整,由此可能频繁的产生过多的更新操作,降低开发效率。
以JSP为例,其展现必须依赖于模型,没有模型无法呈现最终效果,渲染视图的过程是在服务端来完成的,最终呈现给用户的是带有模型的视图页面,性能无法得到很好的优化。模型和视图依赖过于紧密,某块业务可能只需要新增一个视图,而这个新增就会因为MVC模式思想的限制而去增加业务逻辑层和数据访问层的代码
那么如何让前端关注界面展现,后端关注业务逻辑,分工明确,职责清晰,敏捷开发呢?当然是使用REST服务将应用程序进行前后端分离
三、REST
REST(英文:Representational State Transfer,简称REST,表述性状态转移)描述了一个架构样式的网络系统。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。REST倾向于用更加简单轻量的方法设计和实现。
基于 Maven 的RESTFUL SSM 框架搭建