项目二01
1.介绍
重点:表设计,需求分析
技术路线
1. 数据库:mysql + mongodb + elasticsearch +Redis (缓存)
2. 持久化层:spring-data ; mybatis-plus
3. 业务层:Springboot;
4. Web:SpringMVC;
5. 前端:
管理后台:jQuery+Bootstrap3
前端展示:vue +jquery + css;
6:开发模式
管理后台:以前传统模式(类似crm)
前端展示:前后端分离方式
1.1.分开的好处
方便系统开发
出于数据安全:前端给用户观看,后端给管理人员观看
维护方便:一个挂掉不会影响其他项目
方便拓展:多个tomcat也算是集群
1.2.项目拆分
1.3.分开步骤
指定pom显示
指定公司,指定包名
<groupId>cn.wolfcode.com</groupId>
<artifactId>father</artifactId>
<packaging>pom</packaging>
<version>1.0.0</version>
项目结构
core + 前端 + 后端
父项目依赖
添加的依赖:parent 依赖管理
添加依赖后所有儿子都有
部分依赖需要添加依赖管理,儿子指定依赖,去除掉版本
儿子单独需要则是自己添加依赖
core:添加需要的项目依赖
配置数据源
建立 domain mapper service util query
domain创建实体类 继承 BaseDomain ,序列化接口 , 记得雪花算法
前端API接口
依赖:mvc依赖,core依赖
配置文件
启动类(注意位置)
controller注意注解
返回单个对象
core添加配置包和配置类来扫描mapper接口,更改资源文件
@Configuration
@MapperScan("cn.wolfcode.total.mapper")
@PropertySource("classpath:core.properties")
public class Config {
}
2.项目开发
2.1.手机校验
手机号检验的正则
正则表达式
// 使用 js 正则表达语法:
// / /g : 正则表达式对象
// ^1 以1开头
// \d 数字 0-9 数字中一个
// {10} 重复个数 \d{10} 表示10个数字
// $ 以xx结束
// [3456789] 代码 3 4 5 6 7 8 9 中一个数
校验以1开头的3456789中为第二个数的再加重复9次0-9数字的数 (手机号)
// /^1[3456789]\d{9}$/
后端
// 后端 springboot项目
// 接收前端发起的异步请求调用业务层的方法查询前端传过来的手机号是否在数据库存有数据并返回json格式
@GetMapping("/checkPhone")
public Object checkPhone(String phone) {
boolean ret = userInfoService.checkPhone(phone);
return ret;
}
// 业务层
public boolean checkPhone(String phone) {
// 条件构造器
QueryWrapper<UserInfo> wrapper = new QueryWrapper<>();
// 设置查找条件 where语句
wrapper.eq("phone",phone);
// sql操作 selectOne(phone)
UserInfo user = super.getOne(wrapper);
// 因为前端验证取反 user != null => 根据手机号查询数据库若没有数据则返回true => 用户不为空
return user != null;
}
2.2.发送验证码
流程分析