1. 开发流程(以处理登录为例)
正常的项目开发流程大致是:
- 先整理出当前项目涉及的数据的类型
- 例如:电商类包含用户、商品、购物车、订单等
- 再列举各种数据类型涉及的数据操作
- 例如:用户类型涉及注册、登录等
- 再挑选相对简单的数据类型先处理
- 简单的易于实现,且可以积累经验
- 在各数据类型涉及的数据操作中,大致遵循增、查、删、改的开发顺序
- 只有先增,还可能查、删、改
- 只有查了以后,才能明确有哪些数据,才便于实现删、改
- 删和改相比,删一般更加简单,所以先开发删,再开发改
- 在开发具体的数据操作时,应该大致遵循持久层 >> 业务逻辑层 >> 控制器层 >> 前端页面的开发顺序
## 2. 管理员登录-持久层(Mapper)
### 2.1. 创建或配置
如果是整个项目第1次开发持久层,在Spring Boot项目中,需要配置:
- 使用`@MapperScan`配置接口所在的根包
- 在配置文件中通过`mybatis.mapper-locations`配置XML文件的位置
如果第1次处理某种类型数据的持久层访问,需要:
- 创建接口
- 创建XML文件
本次需要开发的“管理员登录”并不需要再做以上操作
### 2.2. 规范需要执行的SQL语句
### 2.3. 在接口中添加抽象方法(含必要的VO类)
提示:所有的查询结果,都应该使用VO类,而不要使用实体类,根据阿里的开发规范,每张数据表中都应该有`id`、`gmt_create`、`gmt_modified`这3个字段,而`gmt_create`、`gmt_modified`这2个字段都是用于特殊情况下排查问题的,一般情况下均不会使用,所以,如果使用实体类,必然存在多余的属性,同时,由于不使用星号作为字段列表,则一般也不会查询这2个字段的值,会导致实体类对象中永远至少存在2个属性为`null`。 根据以上提示,以前已经写好的`getByUsername()`是不规范的,应该调整已存在此方法,本次并不需要添加新的抽象方法。 则先创建`cn.tedu.boot.demo.pojo.vo.AdminSimpleVO`类,添加此次查询时需要的属性:
### 2.4. 在XML中配置SQL
### 2.5. 编写并执行测试
## 3. 管理员登录-业务逻辑层(Service)
### 3.1. 创建
如果第1次处理某种类型数据的业务逻辑层访问,需要:
- 创建接口
- 创建类,实现接口,并在类上添加`@Service`注解
本次需要开发的“管理员登录”并不需要再做以上操作
### 3.2. 在接口中添加抽象方法(含创建必要的DTO类)
### 3.3. 在实现类中设计(打草稿)业务流程与业务逻辑(含创建必要的异常类)
### 3.4. 在实现类中实现业务
### 3.5. 编写并执行测试
## 4. 管理员登录-控制器层(Controller)
### 4.1. 创建
如果是整个项目第1次开发控制器层,需要:
- 创建统一处理异常的类
- 添加`@RestControllerAdvice`
- 创建统一的响应结果类型及相关类型
- 例如:`JsonResult`及`State`
如果第1次处理某种类型数据的控制器层访问,需要:
- 创建控制器类
- 添加`@RestController`
- 添加`@RequestMapping`
本次需要开发的“管理员登录”并不需要再做以上操作