公告

记录一下自己学习和生活中的所见所闻

Skip to content

用户中心项目初始化

参考笔记

项目简介和计划​

完整了解做项目的思路,接触一些企业级的开发技术(尽量少写代码)​ 目标:轻松做出管理系统

项目完整开发流程介绍

需求分析 => 设计(概要设计、详细设计) => 技术选型 => 初始化 / 引入需要的技术 => 写Demo => 写代码(实现业务逻辑) => 测试(单元测试) => 代码提交 / 代码评审 => 部署 => 发布

项目流程解释

  1. 需求分析
  • 需求收集:收集来自项目相关方(客户、用户、利益相关者)的信息​
  • 需求整理:将收集到的需求信息进行分类、组织和优先级排序​
  • 需求分析:对整理后的需求进行深入分析,理解其背后的业务逻辑、约束条件和潜在风险​
  • 需求验证:与项目相关方确认需求的准确性和完整性,确保所有需求都是清晰、可衡量和可实现的​
  • 需求文档化:将分析后的需求以文档形式记录下来,作为项目执行和后期参考的依据

确保所有相关方对项目有共同的理解

  1. 设计(概要设计、详细设计)​
  • 概要设计:确定总体布局​
    • 系统总体架构:定义整体结构(硬件、软件、网络等)​
    • 功能模块划分:划分模块,明确各模块的功能和职责​
    • 接口设计:定义模块之间接口,确保模块间数据交互流畅​
    • 技术选型:根据需求以及技术的发展,选择适合的技术栈和工具链​
    • 数据库逻辑设计:数据库的逻辑结构(表结构、索引、引脚等)​
    • 用户界面设计:初步设计用户界面的布局和交互方式​
  • 详细设计:概要设计基础上,进一步细化每个模块的设计​
    • 算法设计:为每个功能模块设计具体的算法,实现业务逻辑​
    • 数据结构设计:设计详细的数据结构(数据库的物理结构、文件结构等)​
    • 接口物理定义:明确模块间接口的物理实现方式(Eg:API接口定义)​
    • 用户界面细化:详细设计用户界面的布局、样式、交互逻辑等​
    • 错误处理与安全性设计:考虑系统可能出现的异常情况,设计相应的错误处理机制和安全性措施

概要设计从宏观角度为项目提供总体框架和方向​ -详细设计从微观角度对概要设计进行细化和具体化,确保软件系统的可实施性和高质量完成

  1. 技术选型
  • 根据需求以及技术的发展,选择适合的技术栈和工具链

直接影响项目的开发效率和质量,还关系到项目的可维护性、可扩展性和未来的竞争力

  1. 初始化 / 引入需要的技术
  • 根据技术选型的结果,搭建开发环境,引入所需的框架、库等,并进行必要的配置​
  • 新项目:初始化​
  • 已有项目:引入需要的技术
  1. 写Dem
  • 在正式开始编码之前,编写一个简单的演示程序(Demo),用于验证技术选型的可行性和设计的合理性(Eg:测试组件库是否引入成功)
  1. 写代码(实现业务逻辑)​
  • 根据详细设计文档,编写实现业务逻辑的代码。需要遵循编码规范,保证代码的可读性、可维护性和可扩展性
  1. 测试(单元测试)​
  • 编写单元测试代码,对项目的各个模块进行测试,确保它们按照预期工作
  1. 代码提交 / 代码评审​
  • 将编写好的代码提交到代码仓库,并进行代码评审。代码评审可以帮助发现潜在的问题,提高代码质量
  1. 部署​
  • 将代码部署到生产环境或测试环境,进行集成测试和性能测试​
  1. 发布​
  • 经过充分的测试后,将项目发布给客户或用户,进行实际使用。发布后可能还需要进行后续的维护和升级

需求分析

  1. 登录 / 注册​
  2. 用户管理(仅管理员可见)对用户的查询或者修改​
  3. 用户校验(仅星球用户)​ ​

技术选型

前端:三件套 + React + 组件库 Ant Design + Umi + Ant Design Pro(现成的管理系统)​ 后端:​

  • Java ​
  • Spring (依赖注入框架,帮助你管理 Java 对象,集成一些其他的内容)​
  • SpringMVC (web 框架,提供接口访问、restful接口等能力)​
  • Mybatis (Java 操作数据库的框架,持久层框架,对 jdbc 的封装)​
  • Mybatis-plus (对 mybatis 的增强,不用写 sql 也能实现增删改查)​
  • SpringBoot (快速启动 / 快速集成项目。不用自己管理 spring 配置,不用自己整合各种框架)​
  • Junit (单元测试库)​
  • Mysql (数据库)​ 部署:服务器 / 容器(平台)

前端初始化

先放着,先学后端

后端初始化

安装 MySQL 5.7

【Windows 同时安装 MySQL5 和 MySQL8 - 详细图文教程】

3种方式初始化 Java 项目

  • Github 上搜索 SpringBoot 模板,拉取(不推荐)​
  • SpringBoot 官方模板生成器(https://start.spring.io/)​
  • IDEA 生成(推荐)

环境搭建

1. 创建项目

image.png

spring.io 不支持勾选 Java 8 了 , 可以如下图所示,点击齿轮,将初始化链接换成阿里云的http://start.aliyun.com, 就可以正常选择 Java 8

image.png

选择版本,安装一些依赖

image.png

2. 连接数据库

连接数据库可以在IDEA中,当然也可以使用其他工具比如Navicat

image.png

image.png

image.png

Spring Boot 框架整合

1. 创建数据库

image.png

image.png

image.png

image.png

2. 按照 mybatis-plus 官方教程操作

2.1 建表
SQL
# 建表​
DROP TABLE IF EXISTS `user`;​

CREATE TABLE `user`​
(​
    id BIGINT NOT NULL COMMENT '主键ID',​
    name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',​
    age INT NULL DEFAULT NULL COMMENT '年龄',​
    email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',​
    PRIMARY KEY (id)​
);​

# 插入数据​
DELETE FROM `user`;​

INSERT INTO `user` (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),​
(2, 'Jack', 20, 'test2@baomidou.com'),​
(3, 'Tom', 28, 'test3@baomidou.com'),​
(4, 'Sandy', 21, 'test4@baomidou.com'),​
(5, 'Billie', 24, 'test5@baomidou.com');

image.png

image.png

2.2 pom.xml 文件中引入依赖

junit 从 maven 仓库 中引入 有什么不知道的包都可以从maven仓库中查

DANGER

选择稳定版本,注意防止依赖冲突

XML
<dependency>  
<groupId>com.baomidou</groupId>  
<artifactId>mybatis-plus-boot-starter</artifactId>  
<version>3.5.2</version>  
</dependency>  
<!-- https://mvnrepository.com/artifact/junit/junit -->  
<dependency>  
<groupId>junit</groupId>  
<artifactId>junit</artifactId>  
<version>4.13.2</version>  
<scope>test</scope>  
</dependency>
2.3 配置
  • application.properties 文件改成 application.yml 中编写配置

shift + F6 快速改名 image.png

image.png

视频中需要更新的地方:driver-class-name: com.mysql.cj.jdbc.Driver​

yml
spring:  
 application:  
  name: user-center  
  
 datasource:  
  driver-class-name: com.mysql.cj.jdbc.Driver  
# 如果安装了多版本的 MySQL ,此处需要修改端口号​  
  url: jdbc:mysql://localhost:3306/user-center  
  username:  
  password:  
server:  
 port: 8080
  • 在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹(此时没有mapper文件夹,新建一个)

image.png

java
@SpringBootApplication
@MapperScan("com.yupi.usercenter.mapper")​
public class UserCenterApplication {​

public static void main(String[] args) {​
   SpringApplication.run(UserCenterApplication.class, args);​
}​

}
2.4 编码
  • 编写实体类 User.java image.png
java
@Data
public class User {​
    private Long id;​
    private String name;​
    private Integer age;​
    private String email;​
}
  • 编写 Mapper 接口类 UserMapper.java: image.png
java
public interface UserMapper extends BaseMapper<User> {​

}

bug

IDEA 错误 找不到或无法加载主类(完美解决) image.png

解决方法

https://blog.csdn.net/l_mloveforever/article/details/112725753

采用了第二种方法解决了

image.png

成功运行

image.png

image.png