后台系统搭建

项目架构

前后端分离开发

前后端分离架构介绍

  • 前后端分离已成为互联网项目开发的业界标准使用方式,将前端和后端的开发进行解耦。并且前后端分离会为以后的大型分布式架构、微服务架构、多端化服务(各种客户端,比如浏览器、车载终端、安卓、IOS等)打下坚实的基础。

  • 前后端分离的核心思想就是前端HTML页面通过AJAX调用后端的API接口,并通过JSON数据进行交互。

image.png

接口文档

  • 什么是接口文档?
    在我们的项目中使用的是前后端分离开发方式,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直进行接口文档的维护。

  • 为什么要写接口文档?
    1.项目开发过程中前后端工程师有一个统一的文件进行沟通交流,并行开发
    2.项目维护中或者项目人员更迭,方便后期人员查看、维护

  • 接口规范是什么?
    一个接口的描述至少包括下面几项:
    名称: findCourseList
    描述: 根据条件查询课程信息
    URL: http://localhost:8080/lagou_edu_home/course/
    请求方式: GET
    请求参数

    methodName:"findCourseList";
    复制代码

    响应结果

    {
        "status": "0",
        "msg": "success"
    }
    复制代码

前后端分离架构的优势

  • 前后端耦合的开发方式
    这种方式中 Java程序员又当爹又当妈,又搞前端,又搞后端。 正所谓术业有专攻,一个人如果什么都会,那么他肯定也什么都不精.

image.png

  • 前后端耦合的缺陷 (以JSP为例)
    1. UI出好设计图之后,前端开发工程师只负责将设计图切成HTML,需要由Java开发工程师来将HTML套成JSP页面,修改问题的时候需要双方协同开发,效率低下。
    2. JSP页面必须要在支持Java的WEB服务器上运行(如Tomcat、Jetty等),无法使用Nginx等(官方宣称单实例HTTP并发高达5W),性能提升不上来。
    3. 第一次请求JSP,必须要在WEB服务器中编译成Servlet,第一次运行会较慢。 之后的每次请求JSP都是访问Servlet再用输出流输出的HTML页面,效率没有直接使用HTML高
  • 前后端分离的开发方式

image.png

  • 前后端分离的优势
    1. 前后端分离的模式下,如果发现Bug,可以快速定位是谁的问题,不会出现互相踢皮球的现象
    2. 前后端分离可以减少后端服务器的并发/负载压力。除了接口以外的其他所有HTTP请求全部转移到前端Nginx上,接口的请求则转发调用Tomcat.
    3. 前后端分离的模式下,即使后端服务器暂时超时或宕机了,前端页面也会正常访问,只不过数据刷不出来而已。
    4. 前后端分离会更加合理的分配团队的工作量,减轻后端团队的工作量,提高了性能和可扩展性。

技术选型

前端技术选型

前端技术 说明
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.apache.org/download.cg…

Maven软件的安装

  • Maven 下载后,将 Maven 解压到一个没有中文没有空格的路径下
  1. bin:存放了 maven 的命令
  2. boot:存放了一些 maven 本身的引导程序,如类加载器等
  3. conf:存放了 maven 的一些配置文件,如 setting.xml 文件
  4. 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
喜欢就支持一下吧
点赞0 分享