Java笔记-19、Web后端实战-准备

智能学习辅助系统

需求

  1. 部门数据管理
  2. 员工数据管理,文件上传
  3. 报表统计
  4. 登录认证
  5. 日志管理
  6. 班级、学员信息的数据管理

准备工作

开发规范

前后端混合:分工不明确;不便管理;难以维护。

开发模式:前后端分离。

前端开发完毕后,会独立部署在nginx服务器。

后端开发完毕后,会独立部署在tomcat服务器。

前端发起数据请求,后端响应数据请求。

接口文档定义请求信息和响应信息。这里的接口不是interface,而是功能,一个功能就是一个接口。依据页面原型和需求文档进行设计。

接口文档样例

功能:部门列表查询

  1. 基本信息

请求路径:/depts

请求方式:GET

接口描述:该接口用于部门列表数据查询

  1. 请求参数

  1. 响应数据

参数格式:application/json

参数说明:

参数名 类型 是否必须 备注
code number 必须 响应码,1 代表成功,0 代表失败
msg string 非必须 提示信息
data object[ ] 非必须 返回的数据
|- id number 非必须 id
|- name string 非必须 部门名称
|- createTime string 非必须 创建时间
|- updateTime string 非必须 修改时间

响应数据样例:

{
  "code": 1,
  "msg": "success",
  "data": [
    {
      "id": 1,
      "name": "学工部",
      "createTime": "2022-09-01T23:06:29",
      "updateTime": "2022-09-01T23:06:29"
    },
    {
      "id": 2,
      "name": "教研部",
      "createTime": "2022-09-01T23:06:29",
      "updateTime": "2022-09-01T23:06:29"
    }
  ]
}

开发流程

需求分析-接口设计(API接口文档)-前后端并行开发-测试(前、后端分别+联调)

软件架构风格-Restful

前端与后端交互的风格。

REST (REpresentational state Transfer),表述性状态转换,它是一种软件架构风格。

基于REST风格URL如下:

其中总结起来,就一句话:通过URL定位要操作的资源,通过HTTP动词(请求方式)来描述具体的操作。

  • GET : 查询
  • POST :新增
  • PUT : 修改
  • DELETE :删除

REST是风格,是约定方式,约定不是规定,可以打破
描述模块的功能通常使用复数,也就是加s的格式来描述,表示此类资源,而非单个资源。如:users、emps、books…

Apifox

前后端都在并行开发,后端开发完对应的接口之后,如何对接口进行请求测试。浏览器只能发送GET请求。

前后端都在并行开发,前端开发过程中,如何获取到数据,测试页面的渲染展示。

使用apifox apipost postman等工具。

工程搭建

  • 创建SpringBoot工程,并引入web开发起步依赖、mybatis、mysql驱动、lombok。
  • 创建数据库表dept,并在application.yml中配置数据库的基本信息。
  • 准备基础代码结构,并引入实体类Dept及统一的响应结果封装类 Result。

创建SpringBoot工程

  1. 创建空project,设置project structure中的SDK版本和Language Level。
  2. 检查Maven路径,找到Settings-Build-Build Tools-Maven,查看maven home path是否是对的,查看仓库的配置User settings file 和 Local repository。
  3. 检查设置字符集。打开Settings-Editor-File Encodings,将Global、Project、properties的Encoding都设置为UTF-8。
  4. 在工程下new一个module,选择spring boot,Java Maven,包名改一下删掉最后一级,JDK和Java选一下。
  5. 选择Spring Boot的版本,然后勾选依赖:Lombok、Spring Web、MyBatis Framework、MySQL Driver,创建。(如果pom.xml没有m小图标,右键add as a Maven Project)删除无用文件,只保留src和pom和.iml文件。
  6. 查看src目录结构,main-java下由一个启动类,main-resources下static和template删掉就行。application.properties同样删掉,新建application.yml文件。

创建数据库表

  1. 打开数据库管理软件,在MySQL中创建一个数据库\(CREATE DATABASE `tlias`\)。
  2. 在数据库中创建数据库表并插入一些数据。
CREATE TABLE dept (
  id int unsigned PRIMARY KEY AUTO_INCREMENT COMMENT 'ID, 主键',
  name varchar(10) NOT NULL UNIQUE COMMENT '部门名称',
  create_time datetime DEFAULT NULL COMMENT '创建时间',
  update_time datetime DEFAULT NULL COMMENT '修改时间'
) COMMENT '部门表';
  1. 在application.yml中配置数据库连接信息。
spring:
  application:
    name: tlias-web-management
  datasource:
    driver-cLass-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/tlias
    username: root
    password: 123456

mybatis:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

创建基本包结构和实体类

  1. 在main-java启动类同级下创建包pojo,存放实体类;包controller,存放控制层代码;包service,存放业务层代码;包mapper(dao,MyBatis中叫mapper),存放持久层代码。
  2. 创建实体类和响应结果封装类。
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Dept {
    private Integer id;
    private String name;
    private LocalDateTime createTime;
    private LocalDateTime updateTime;
}
// --------------------------------------------------
@Data
public class Result {

    private Integer code; //编码:1成功,0为失败
    private String msg; //错误信息
    private Object data; //数据

    public static Result success() {
        Result result = new Result();
        result.code = 1;
        result.msg = "success";
        return result;
    }

    public static Result success(Object object) {
        Result result = new Result();
        result.data = object;
        result.code = 1;
        result.msg = "success";
        return result;
    }

    public static Result error(String msg) {
        Result result = new Result();
        result.msg = msg;
        result.code = 0;
        return result;
    }

}

  1. 准备mapper、controller、service基本骨架。
    在mapper包下创建接口DeptMapper,并加@Mapper注解。
    在service包下创建接口DeptService,并在service包的impl包下创建实现类DeptServiceImpl实现接口,并加注解@Service,交给IOC管理。
    在controller包下创建类DeptController,并加注解@RestController,表示控制层的请求处理类。

重温一下,RestController注解包含了Controller注解和ResponseBody注解,ResponseBody将方法的返回值直接作为响应数据响应给前端,如果是对象或集合,会转成json再响应。

posted @ 2025-03-20 23:24  subeipo  阅读(33)  评论(0)    收藏  举报