mirror of
https://gitee.com/coder-xiaomo/flashsale
synced 2025-01-10 03:38:16 +08:00
SpringBoot秒杀项目
.idea | ||
frontend | ||
Others | ||
src | ||
.gitattributes | ||
.gitignore | ||
pom.xml | ||
README.md |
电商基础秒杀项目
项目简介:基于SpringBoot,数据库使用MySQL
开发工具:IntelliJ IDEA 2021.3.2 (Ultimate Edition)
数据库版本:MySQL 5.7
项目数据库文件:点击打开
默认用户
用户名密码均为
admin
层次结构(以User为例,自上向下)
目录 | Java对象类型 | 说明 | 举例 | |
---|---|---|---|---|
Controller层 | ||||
Controller | controller | 类 class | controller.UserController | |
View Object (VO) | controller/viewobject | 类 class | 将用户Model转化为可供UI使用的View Object | controller.UserController |
Service层 | 转换成业务模型 | |||
Service | service | 接口 interface | service.UserService | |
ServiceImpl | service/impl | Service接口实现类 | 将DataObject组装成Model | service.impl.UserServiceImpl |
Model | service/model | 类 class | 用户模型Model | service.model.UserModel |
Dao层 | 对数据库的映射 | |||
Mapper | dao | 接口 interface | dao.UserDOMapper | |
Mapping | resources/mapping | Mapper接口实现类 | xml格式;SQL语句 | mapping/UserDOMapper.xml |
Data Object (DO) | dataobject | 类 class | dataobject.UserDO | |
其他 | ||||
response | response | 用于处理HTTP请求返回 | response.CommonReturnType | |
ValidationResult | validator | 类 class | Hibernate Validator 参数验证 | validator\ValidationResult.java |
ValidatorImpl | validator | ValidationResult类实现类 | Hibernate Validator 参数验证 | validator\ValidatorImpl.java |
异常处理 | 用于返回错误信息 | |||
CommonError | error | 接口 interface | error.CommonError | |
EmBusinessError | error | 枚举 enum & CommonError接口实现类 | error.EmBusinessError | |
BusinessException | error | CommonError接口实现类 & 继承自Exception | error.BusinessException |
Tips: Model与Data Object并非完全一一对应,例如UserModel是由ServiceImpl将UserDO和UserPasswordDO组装而成的。
代码构建顺序:
-
创建Model模型(service/model)
-
创建数据库中数据表
-
使用mybatis-generator生成数据库映射文件(dao ; dataobject ; resources/mapping)
-
创建Service接口(service)
-
创建Service接口实现Impl(service/impl)(class打上
Service
标注;方法上打上@Transactional
标签保证是在同一事务中) -
思考ServiceImpl中需要哪几步,并逐步实现
-
如果需要修改自动生成的数据库语句,先改 resources/mapping 下的xml映射SQL语句,然后修改 dao 下的DOMapper接口
-
可以用
org.springframework.beans
包中的BeanUtils.copyProperties
进行DO转Model或Model转DO(要字段和类型完全一致的字段才能拷贝,其他不对应字段的需要手动设置)
-
-
Service返回Controller前完成将DO转换为Model,同时进行业务处理,最后返回Model
-
创建Controller(继承BaseController),在class上添加注解
@Controller("/item") @RequestMapping("/item") @CrossOrigin(allowedHeaders = "*", allowCredentials = "true")
-
创建Controller方法(添加以下注释)
// POST @RequestMapping(value = "/create", method = {RequestMethod.POST}, consumes = {CONTENT_TYPE_FORMED}) @ResponseBody // GET @RequestMapping(value = "/get", method = {RequestMethod.GET}) @ResponseBody
-
前端页面
-
完成