这几天有很多新手同学问我这个问题。今天想写个博客给大家说一下自己对前后端分离开发的看法。
为什么要使用前后端分离开发的架构模式?
- 前后端不分离
在前后端不分离的应用模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高。(图片为自己百度上搜的转载图)
- 前后端分离
前后端分离的应用模式中,后端仅返回前端所需的数据,不再渲染HTML页面,不再控制前端的效果。至于前端用户看到什么效果,从后端请求的数据展现都是后端通过异步接口(AJAX/JSON)的方式提供的,前端只管展现。但是不要以为只有在敲代码的时候把前端和后端分开就是前后端分离了。(图片为自己百度上搜的转载图)
- 前后端分离的优点
彻底解放前端,前端不再需要向后台提供模板或是后台在前端html中嵌入后台代码,提高工作效率,分工更加明确。局部性能提升,通过前端路由的配置,我们可以实现页面的按需加载,无需一开始加载首页便加载网站的所有的资源,服务器也不再需要解析前端页面,在页面交互及用户体验上有所提升。降低维护成本,通过MVC框架,我们可以非常快速的定位及发现问题的所在,客户端的问题不再需要后台人员参与及调试,代码重构及可维护性增强。
- 采用Springboot进行后端服务开发,以接口形式暴露给前端。
前端通过ajax异步请求接口,获取后端服务返回的数据。后端调用流程一般为:controller层-->service-->dao层,在controller层负责对接口接收的参数处理及选择service服务。service层负责实现具体功能。dao层负责与数据库打交道。一般框架还会携带config配置层,tool自定义工具层。