项目架构
前后端分离开发
前后端分离架构介绍
-
前后端分离已成为互联网项目开发的业界标准使用方式,将前端和后端的开发进行解耦。并且前后端分离会为以后的大型分布式架构、微服务架构、多端化服务(各种客户端,比如浏览器、车载终端、安卓、IOS等)打下坚实的基础。
-
前后端分离的核心思想就是前端HTML页面通过AJAX调用后端的API接口,并通过JSON数据进行交互。
接口文档
-
什么是接口文档?
在我们的项目中使用的是前后端分离开发方式,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直进行接口文档的维护。 -
为什么要写接口文档?
1.项目开发过程中前后端工程师有一个统一的文件进行沟通交流,并行开发
2.项目维护中或者项目人员更迭,方便后期人员查看、维护 -
接口规范是什么?
一个接口的描述至少包括下面几项:
名称: findCourseList
描述: 根据条件查询课程信息
URL: http://localhost:8080/lagou_edu_home/course/
请求方式: GET
请求参数methodName:"findCourseList"; 复制代码
响应结果
{ "status": "0", "msg": "success" } 复制代码
前后端分离架构的优势
- 前后端耦合的开发方式
这种方式中 Java程序员又当爹又当妈,又搞前端,又搞后端。 正所谓术业有专攻,一个人如果什么都会,那么他肯定也什么都不精.
- 前后端耦合的缺陷 (以JSP为例)
- UI出好设计图之后,前端开发工程师只负责将设计图切成HTML,需要由Java开发工程师来将HTML套成JSP页面,修改问题的时候需要双方协同开发,效率低下。
- JSP页面必须要在支持Java的WEB服务器上运行(如Tomcat、Jetty等),无法使用Nginx等(官方宣称单实例HTTP并发高达5W),性能提升不上来。
- 第一次请求JSP,必须要在WEB服务器中编译成Servlet,第一次运行会较慢。 之后的每次请求JSP都是访问Servlet再用输出流输出的HTML页面,效率没有直接使用HTML高
- 前后端分离的开发方式
- 前后端分离的优势
- 前后端分离的模式下,如果发现Bug,可以快速定位是谁的问题,不会出现互相踢皮球的现象
- 前后端分离可以减少后端服务器的并发/负载压力。除了接口以外的其他所有HTTP请求全部转移到前端Nginx上,接口的请求则转发调用Tomcat.
- 前后端分离的模式下,即使后端服务器暂时超时或宕机了,前端页面也会正常访问,只不过数据刷不出来而已。
- 前后端分离会更加合理的分配团队的工作量,减轻后端团队的工作量,提高了性能和可扩展性。
技术选型
前端技术选型
前端技术 | 说明 |
---|---|
Vue.js | 是一套用于构建用户界面的渐进式JavaScript框架 |
Element UI库 | element-ui 是饿了么前端出品的基于 Vue.js的 后台组件库, 方便程序员进行页面快速布局和构建 |
node.js | 简单的说 Node.js 就是运行在服务端的 JavaScript 运行环境 . |
axios | 对ajax的封装, 简单来说就是ajax技术实现了局部数据的刷新,axios实现了对ajax的封装 |
后端技术选型
后端技术 | 说明 |
---|---|
Web层 | a) Servlet:前端控制器 b) Filter:过滤器 c) BeanUtils:数据封装 |
Service层 | a) 业务处理 |
dao层 | a) Mysql:数据库 b) Druid:数据库连接池 c) DBUtils: 操作数据库 |
项目开发环境
- 开发工具
- 后端: IDEA 2020
- 前端: VS code
- 数据库: Navicat Premium
- 开发环境
- JDK 11
- Maven 3.6.3
- MySQL 5.7
Maven 项目管理工具
Maven介绍
什么是Maven
- Maven是一个跨平台的项目管理工具。作为Apache组织的一个颇为成功的开源项目,其主要服务于基于Java平台的项目创建,依赖管理和项目信息管理。maven是Apache的顶级项目,解释为“专家,内行”,它是一个项目管理的工具,maven自身是纯java开发的,可以使用maven对java项目进行构建、依赖管理。
Maven的作用
- 依赖管理
- 依赖指的就是是 我们项目中需要使用的第三方Jar包, 一个大一点的工程往往需要几十上百个Jar包,按照我们之前的方式,每使用一种Jar,就需要导入到工程中,还要解决各种Jar冲突的问题.
- Maven可以对Jar包进行统一的管理,包括快速引入Jar包,以及对使用的 Jar包进行统一的版本控制
- 一键构建项目
- 之前我们创建项目,需要确定项目的目录结构,比如
src
存放Java源码,resources
存放配置文件,还要配置环境比如JDK的版本等等,如果有多个项目 那么就需要每次自己搞一套配置,十分麻烦 - Maven为我们提供了一个标准化的Java项目结构,我们可以通过Maven快速创建一个标准的Java项目.
- 之前我们创建项目,需要确定项目的目录结构,比如
Maven 的使用
Maven软件的下载
使用 Maven 管理工具,我们首先要到官网去下载它的安装软件。
Maven软件的安装
- Maven 下载后,将 Maven 解压到一个没有中文没有空格的路径下
- bin:存放了 maven 的命令
- boot:存放了一些 maven 本身的引导程序,如类加载器等
- conf:存放了 maven 的一些配置文件,如 setting.xml 文件
- lib:存放了 maven 本身运行所需的一些 jar 包
Maven环境变量配置
后台系统搭建
环境搭建
创建项目
项目目录
导入pom.xml
导入工具类及配置文件
导入实体类
通用Servlet
JSON
JSON简述
- JSON(JavaScript Object Notation) JavaScript对象表示法(JSON源于JS)。
JSON的特点:
- JSON 是一种轻量级的数据交换格式。
- JSON采用完全独立于语言的文本格式,就是说不同的编程语言JSON数据是一致的。
- JSON易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。
XML与JSON的区别
- XML : 可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言。
- JSON: (JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。
- 相同点:
- 它们都可以作为一种数据交换格式。
- 二者区别:
- XML是重量级的,JSON是轻量级的,XML在传输过程中比较占带宽,JSON占带宽少,易于压缩。
- XML和json都用在项目交互下,XML多用于做配置文件,JSON用于数据交互
- JSON独立于编程语言存在,任何编程语言都可以去解析json
Postman
postMan介绍
Postman是一款功能强大的http接口测试工具,使用postman可以完成http各种请求的功能测试。
官方地址:www.getpostman.com/
文件上传
文件上传三要素:
- 1.表单提交方式: post (get方式提交有大小限制,post没有)
- 2.表单的enctype属性:必须设置为 multipart/form-data.
- enctype就是encodetype就是编码类型的意思.
- multipart/form-data是多部件文件上传 , 指表单数据有多部分构成,既有文本数据,又有文件等二进制数据的意思。
BeanUtils工具类
介绍
BeanUtils 是 Apache commons组件的成员之一,主要用于简化JavaBean封装数据的操作。可以将一个表单提交的所有数据封装到JavaBean中。
POST请求方式介绍
- POST 请求方法常用的三种数据提交格式
格式 | 说明 |
---|---|
Content-Type: application/x-www-form-urlencoded | 请求体中的数据会以普通表单形式(键值对)发送到后端。 |
Content-Type: application/json;charset=utf-8 | 请求体中的数据会以json字符串的形式发送到后端。 |
Content-Type : multipart/form-data | 多部件上传既可以上传键值对 也可以上传文件。 |
注意: 第二种JSON格式与第三种多部件上传,使用 getParameter() 方法都无法获取数据
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END