¶ 黄金 - 完整电商项目之后台(mall4j) Mall4j
¶ 学习项目
¶ 看代码的原则 始终持反思的态度:别人写的不一定就是完全对的,或者有其场景性;多问自己,为什么是这样,我能不能不这样?有没有更好的选择?
代码的结构是迎合业务的需求而变化着的,这点是至关重要的。代码结构往往是开发成本和业务的折中, 不是说代码这样很精致我们就这样做的,不是说这样炫酷我们就这样实现的。
注重总体的理解,而不是细节。
¶ 学习着手点 先看pom引入
对于不知道在哪里使用的类,或者想看之间的关联,先注释掉,看报错
¶ 准备知识 Guava
SpringBoot
Java 8
¶ 开始学习之理解业务
¶ 一般电商有哪些业务
¶ 这个项目包含哪些业务
¶ 开始学习之后端学习
¶ 1. 后端 - 环境准备和配置
¶ 2. 后端 - 理解包结构 包的划分是按照模块划分还是按照逻辑层次?
包的统一版本管理
证书问题
Readme
¶ 3. 后端 - Common包 什么内容应该放在common包?Bean和Security应该放common包吗?
统一的工具类
统一的序列化
统一的响应封装
统一的异常处理
统一的日志拦截
统一的常量定义
统一的配置(包括第三方组件配置) 缓存配置 - Redis(接口幂等)
ORM层 - MyBatis配置
文件上传 - 七牛云配置
短信通知 - 阿里大鱼
¶ 4. 后端 - Bean包 理解DO,DTO,VO
理解Param
理解Mapper是否要和DO放一起?
理解层次和业务模块分包原则?
lombok不一致
序列化的意义
¶ 5. 后端 - Security包 AAA与HTTP Status Code
理解RBAC
理解SpringSecurity和Shiro
SpringSecurity - Filter,Provider, Parser之间的关系 https://www.cnblogs.com/jeeweb/p/11818948.html
https://www.cnblogs.com/demingblog/p/10874753.html
普通用户和系统用户分离
登录登出
验证码
错误信息提示
权限控制
AppConnect放这里是否合适 如果不放在这里会出现鸡生蛋蛋生鸡的问题
里面Mpxxx开头的是否可以删除? MpAuthenticationProvider
MpAuthenticationToken
¶ 6. 后端 - Service包 理解ORM
理解MyBatis,JPA等
理解MyBatisPlus
MyBatisPlus相关配置和使用
为什么其它包里还有DAO相关的?
缓存的使用
Service,Mapper, DO之间的关联
是否需要使用代码生成
¶ 7. 后端 - Mp包 微信小程序
微信公众号
微信支付
¶ 8. 后端 - API包 分布式ID - Snowflake
Swagger2 接口文档 https://doc.xiaominfo.com/guide/i18n.html
资源管理 ResourceServer
授权管理 AuthorizationServerConfigurer
Lisener 默认操作 确认订单信息时的默认操作
默认的购物车链进行组装时的操作
确认订单信息时的默认操作
删除和编辑等数据操作并没有权限的控制,是否有需要做?
¶ 9. 后端 - Quartz包 Quartz基本使用
Quartz任务持久化
Quartz任务和任务日志
异步监听定时任务事件,解决job线程无故丢失的问题
¶ 10. 后端 - Sys包 系统日志切面
系统配置信息管理
系统日志查询
系统菜单管理
RBAC - 系统用户和角色管理
¶ 11. 后端 - admin包
¶ 12. 后端 - Docker