Java全栈工程师-从Java后端到全栈|完结无秘|百度云下载课程介绍(A000585):
- 7七月亲授,Web领域市场呼声最高的主流技术栈逐一精讲
- 技术与业务深度融合,电商项目前后端开发的教科书级别案例
- 赋能Java从业者拥有更强的职场适应力和工作竞争力
- 半年时间,带你从后端走向全栈
- 从后端到全栈CTO,我花了10年,这10年浓缩成了120多个小时,我的10年,你或许只需要半年,我希望
- 你比我幸运,少一些投石问路式的摸索,以更快的速度成为能胜任更高职位,更受市场青睐的全栈工程师
课程目录:
- 阶段一:电商前端-极致体验的高级电商小程序
- 第1周 走进Web全栈工程师
- 开课第一周,我们会公布完整的课程体系计划,展示完整的项目效果,然后开始进行项目分析,项目技术选型,和小程序组件化开发方式和技巧。
- 课程安排:
- 1、全栈项目的前期规划与投入
2、了解《风袖》的整体架构;前置知识补齐;开发工具总览;
3、如何从0开始去架构一个电商级别项目
4、如何分析项目,典型项目的必备环节
5、配置文件与第一次调用服务端API,业务对象的重要性
6、对接服务端API,同时在前端全面使用async和await来封装Httpq请求,打造完美的小程序分层结构
7、小程序插槽Slot的基本概念
8、npm的semver语法规则
9、掌握小程序组件化开发方式和技巧,打好基础
10、全面使用自定义组件来构建首页的各个元素,提升开发效率
11、自定义组件与 LinUI Grid组件构建分类六宫格
12、组件设计与LinUI使用的几个非常重要的原则 - 第2周 Lin UI组件库的引入与编程原则
- 本周我们正式开始开发环节,由于项目比较复杂,所以我们需要LinUI来辅助我们构建页面。本章我们重点学习LinUI的Price组件,但学习组件不是目的关键是要学习组件的设计技巧和组件化编程的原则。
- 课程安排:
- 1、优惠券的一些基本概念及优惠券入口
2、小程序页面背景颜色到底怎么设置?
3、HTTP请求是否应该被合并?
4、函数式编程概念与技巧
5、深入理解原生scroll-view组件
6、是不是方法都需要加async和await?
7、spu-scroll滑动自定义组件
8、Lin UI Price价格组件应用 - 第3周 热身结束,开启试炼
- 前两周我们节奏稍缓,主要是给大家留出做作业的时间,本周开始我们逐步结束热身环节,开启进阶的内容,所以从本周开始我们节奏会加快。本周主要完成首页的热卖、上新、底部长滚动列表和瀑布流。
- 课程安排:
- 1、通过scroll-view抽象出的几个css编写原则
2、使用WXS解决复杂的逻辑问题
3、webstorm的骚操作自定义代码片段
4、自定义组件的边距问题与外部样式类应用
5、学会抽象来简化数据库表设计
6、新监听器Observers
7、flex布局的灵活应用
8、Hover点击态的应用与@import 公共样式表
9、组件自定义性的终极方案:抽象节点
10、什么是防抖、截流,如何应用?
11、自定义Paging对象详解(解决分页问题)
12、编码之美:多用return提前结束函数,少用else
13、折扣价和原价的常见错误逻辑
14、l-water-flow抽象组件式深入剖析
15、瀑布流的分页加载及初步成型
16、动态计算图片高和宽
17、Loading的思维逻辑:正在加载其实是一种常驻状态 - 第4周 攻克SKU和商品购物车
- 第四周很重要!我们会重点讲解SKU,SPU和购物车,完善购物车的复杂逻辑是每一个前端开发头疼的问题,更是电商项目的精髓所在,助力同学攻克难关!
- 课程安排:
- 1、页面跳转与新机制EventChannel
2、Spu、Sku、规格名和规格值的意义
3、调整思维,才能解决复杂的逻辑问题
4、借助符号化的命名方式思考问题
5、控制中心Realm与栅栏Fence
6、Fence的实例化、测试Fences
7、SKU总体思路流程分析与矩阵思维简化规格值提取
8、SKU方案整理 一:规格值的提取
9、SKU方案整理 二:核心问题是规格值状态的确定
10、用矩阵的思想提取规格值
11、数学小课堂:矩阵的转置与旋转/实现矩阵的遍历
12、谈数学、面向对象与编程思维
13、构建Cell对象 - 第5周 SKU核心:规格状态、编码、无货逻辑
- 上周我们为SKU打下了坚实的理论基础,本章我们逐步进入SKU的核心算法
- 课程安排:
- 1、SKU串码编号、 Fence与规格名的对应关系
2、Cell去重、自定义组件,初步完成规格矩阵渲染
3、SKU核心算法与具体实现
4、矩阵列不同规格的问题解答
5、排列组合在SKU中的应用
6、SkuCode类拆分Sku可能的路径
7、Combination组合函数 、完成PathDict字典
8、Cell的三种状态样式
9、选中、禁用与可选状态的切换
10、SKU选择的数据流向
11、自定义组件事件跨越组件边界
12、什么是SKU的潜在路径?
13、重新渲染矩阵与错误排查推演
14、获取Cell的行列号,实现Cell的正选和反选
15、SKU潜在路径、潜在路径PotentialPath分析
16、正选/反选Cell的规律推演
17、SkuPending类的职责
18、遍历所有Cell的潜在路径
19、完成SKU的逻辑选择 - 第6周 SKU收尾,优惠券、购物车讲解
- 本周,我们将SKU收尾,同时开始讲解优惠券和购物车。优惠券的核销与购物车数据同步是本周的重难点。前端有三座大山SKU、优惠券与数据同步,这同时也是最能培养我们编程思维的业务了。
- 课程安排:
- 1、Realm骨架的完善
2、默认SKU的概念与意义/默认SKU拆解后加入到SkuPending中
3、从两个指标评估循环对性能造成的影响?
4、完成默认规格渲染、Sku描述数据与规格选择联动
5、无规格商品的具体处理流程
6、规格选择提示的复杂逻辑处理/规格选择与SKU描述联动
7、setData性能探讨
8、获取code码和确定的SKU
9、加入购物车行为逻辑与商品详情页面
10、l-counter数量选择器/数量控制属性
11、无货情况分析、三种触发无货状态的机制
12、使用iconfont在线字体图标、引入自定义字体图标
13、商品详情图展示与隐藏页面滚动条方案
14、realm滑动控制适应不同高度、优化realm的滚动条
15、决定用户立即购买还是加入购物车
16、规格的主观性与组合性
17、分类页面重难点讲解与segment组件的高级应用
18、动态计算窗口高度与px与rpx动态转换、不同机型上px向rpx的转换
19、动态计算Detail页面的Scroll-View高度
20、分类加载的性能与体验优化探讨 - 第7周 高级电商订单管理开发 与前端项目收尾
- 本周讲解订单管理,与订单金额计算,电商价格计算模式很多,关键是对于小数部分的保留问题,分为向上/向下取整,四舍五入,银行家模式等几种。掌握技术干货。此外,我们将结束整个前端部分,开始向Java核心进发
- 课程安排:
- 1、搜索页面:l-search-bar搜索输入框的应用
2、历史搜索记录类
3、数据结构队列在HistoryKeyword中的应用
4、设计模式:代理模式在HistoryKeyword中的应用
5、JS中的单例模式应用
6、关键词、标签二种搜索场景
7、空数据和空关键词处理
8、购物车缓存对象CartStorage
9、单例模式的Cart对象
10、Observer监听器的触发场景与常见错误理解
11、多次触发Observer监听器的”Bug“与解决方案
12、数据绑定延迟问题与解决方案
13、不稳定绑定变量的解决方案
14、自定义CheckBox
15、购物车全选、反选、联动
16、购物车金额合并计算
17、购物车数据同步 - 第7+周 购物车价格同步、优惠券、下单与微信支付
- 本周我们主要完成购物车数据与服务端数据的同步功能,同时优惠券的计算也是一个比较难的知识点。此外,我们还将进行订单与前端微信支付等细节处理
- 课程安排:
- 1、收货地址管理
2、微信授权机制详解(组件式授权与API式授权)
3、收货地址与缓存
4、前端价格合计
5、前端优惠券折扣扣除计算
6、前端价格校验
7、按品类使用优惠券的限制
8、小数位保留(向上、向下取整、四舍五入、银行家模式)
9、商品发货状态管理
10、获取用户微信信息
11、拉起微信支付 - 阶段二:Java SpringBoot API打造高级电商业务后端
- 第8周 初识SpringBoot
- 本周我们将谈谈SpringBoot出现前的Java Web发展历史,并介绍SpringBoot的版本号、建立Java环境以及初始化SpringBoot工程、搭建第一个API。
- 课程安排:
- 1、java web框架的发展历史
2、SpringBoot与面向抽象编程
3、完全搞懂SpringBoot版本号(主、次、增量、发布)
4、Java的2种构建工具:Maven与Gradle
5、开发工具使用Idea和三种创建SpringBoot项目的方式
6、使用Spring Initializr初始化SpringBoot应用程序
7、SpringBoot应用程序的基本目录结构
8、POM文件解析与Maven版本踩坑
9、运行我的第一个SpringBoot应用
10、新建API包与控制器
11、使用ResponseBody注解代替ServletResponse
12、SpringBoot热重启配置
13、@RestController注解 - 第9周 Java编程思想深度理论知识
- 本周是非常重要的深度Java编程思想理论知识,我们目的是要讲IOC和DI,要真正吃透这概念,并不简单。我们需要从最基础的interface多态过度到工厂方法,然后再过渡到IOC,最终实现OCP开闭原则
- 课程安排:
- 1、SpringBoot为什么有这么多复杂的概念?
2、Java是一个笨重的垃圾语言吗?
3、开闭原则OCP、为什么要面向抽象编程?
4、面向抽象的常见手段:interface、工厂模式与IOC和DI
5、第一个烂大街的代码风格
6、使用Interface的抽象风格
7、interface统一方法调用,但无法统一实例化
8、抽象的难点在于new对象
9、只有一段代码不负责对象实例化,才能保持稳定
10、工厂模式分离对象实例化
11、稳定性是相对的,我们需要将不稳定的代码隔离
12、变化是导致代码不稳定的本质原因
13、通过反射机制消除所有的变化
14、工厂模式+反射并不是IOC和D
15、IOC和DI的雏形、IOC的示例
16、为什么引入容器后可以让系统变得稳定?
17、DIP依赖倒置到底是什么
18、DI依赖注入的意义、依赖注入的原理
19、容器的作用是在装配对象
20、从DI的角度理解IOC
21、IOC的终极奥义 - 第10周 Spring与SpringBoot理论篇
- 上周讲解了面向对象的本质和OCP原则,强化对通用原则的理解,也为学习Spring做铺垫。本周我们将开始Spring的理论篇学习,不仅教你如何用Spring和SpringBoot,更是理解它的原理和机制
- 课程安排:
- 1、Spring、SpringMVC与SpringBoot的关系与区别
2、把握Spring的几个重要目的,提升学习效率
3、SpringBoot最基础的编程模式@Component+@Autowired
4、Stereotype Annotations 模式注解
5、Spring的实例化和依赖注入时机与延迟实例化
6、成员变量注入、Setter注入与构造注入
7、一个接口多个实现类的处理
8、@Autowired按类型注入
9、被动推断注入与主动选择注入
10、应对的变化的两种方案(策略模式与属性配置)
11、@Configuration配置类
12、变化最终要被隔离到配置文件中
13、@Configuation和@Bean的真实作用
14、深入剖析@Configuration的意义
15、@Configuration是一种编程模式 - 第11周 sprinboot的条件注解与配置
- 本周我们将详细讲解条件注解的作用与意义 他可以很好的应对变化
- 课程安排:
- 1、Bean名称与几种注入方式补遗
2、@ComponentScan包扫描机制
3、策略模式的几种实现方案
4、条件组件@Conditional的基本用法
5、Condition接口的ConditionContext参数
6、@ConditionalOnBean条件注解
7、SpringBoot自动配置原理解析
8、@SpringBootApplication注解的理解
9、自己编写一个Spring应用启动类
10、@Import 的两种用法
11、SpringBoot自动装配的spring.factories文件
12、Java SPI 机制解析
13、深度理论课总结 - 第12周 Java异常深度剖析
- 本周我们将深度剖析Java异常的分类与区别,同时学习在SpringBoot中应用和处理异常
- 课程安排:
- 1、如何统一捕获异常?
2、异常分类Error、CheckedException与RunTimeException
3、彻底理解CheckedException和RuntimeException
4、自定义HTTPException异常类
5、同时监听Exception和HTTPException
6、异常的深度思考和理解
7、在@ExceptionHandler中返回Unify消息
8、处理自定义HTTPException
9、为什么需要将异常信息写在配置文件里
10、自定义配置类管理配置文件
11、HTTPException的意义
12、SpringBoot主动发现机制和思想
13、根据目录结构自动生成路由前缀
14、自定义RequestMappingInfo
15、通过接口的形式发现类
16、完成自定义PrefixUrl - 第13周 参数校验机制与LomBok工具集的使用
- 重点讲SpringBoot参数校验机制。参数校验选择使用JSR-303BeanValidation,使用注解的方式来进行参数校验。还将学习LomBok工具集常见注解及Builder构造模式
- 课程安排:
- 1、修改Properties文件的编码解决乱码问题、参数校验机制
2、获取URL路径中的参数和查询参数
3、数据传输对象DTO的接收
4、LomBok的基本使用方式、关于构造函数的几个注解
5、@Builder构造器模式的使用
6、JSR-269与Builder模式的序列化
7、使用@Validated注解进行基础参数校验
8、验证HTTP Body中的参数与级联校验
9、自定义校验注解的关联类
10、获取自定义校验注解的参数
11、捕获DTO类的参数校验异常信息
12、捕获Url和查询参数的异常 - 第14周 项目分层设计与JPA技术
- 本周我们将正式开始业务和数据库方面的技术讲解。我们在本阶段主要学习JPA的使用。JPA是基于Hibernate的一项技术,可以使用对象的方式来操作数据库。
- 课程安排:
- 1、Service业务逻辑层(服务层)的建立
2、层与层之间是否一定要用interface建立关联
3、创建数据表的3种主要方式、新建数据库和数据表
4、yml格式的配置文件
5、多环境配置文件(profiles)以及启用方式
6、数据库设计、实体关系与查询方案探讨
7、Maven依赖无法安装的几个解决方案
8、使用ORM的方式生成数据表
9、常用实体类注解与ORM生成表的优劣势浅谈
10、多对多关系的第三张表探讨(重点)
11、数据库设计步骤及数据库优化原则
12、实体与实体之间一对多关系配置@oneToMany
13、指定外键字段与是否需要物理外键
14、jpa的关联关系与规则查询
15、懒加载和急加载
16、双向一对多配置
17、双向一对多的外键配置问题
18、单向多对多关系配置与常见问题
19、双向多对多配置
20、如何禁止JPA生成物理外键 - 第15周 ORM的概念与思维
- 学习ORM的概念:逆向工程生成Entity,Entity基类提取/常见Entity注解。此外我们准备开始开发业务。当然相对于后面的高阶业务要简单,但不要因为简单就放松学习,这是很好的熟悉理论知识的资源
- 课程安排:
- 1、ORM的概念、意义与常见误区问题
2、数据库表数据的设计、导入与导出
3、项目开发顺序、导入项目的SQL文件
4、逆向生成Entity、简化实体字段
5、三个时间字段的说明(create update delete)
6、提取BaseEntity基类
7、访问Banner接口
8、Jaskson序列化库的重要配置(SNAKE_CASE、时间戳)
9、Theme表设计、接口开发
10、表的列行转换思维
11、SPU表设计分析
12、静态资源托管的几种方式、SpringBoot访问静态资源
13、为什么需要提供多个SPU数据的接口?
14、Spu实体映射、Spu详情数据查询
15、查询列表类数据
16、延迟思考,逐层深入
17、数据库多层关系设计思考与冗余字段设计原则
18、导航关系的配置原则(需要时才配置)
19、Latest接口SQL查询分析
20、VO视图层对象的概念和意义 - 第16周 JPA的多种查询规则
- 本周,我们主要学习JPA的查询方式。JPA对于提高发效率来说非常重要,需要认真学习,才能够灵活的应用到项目中提高开发效率。
- 课程安排:
- 1、DozerBeanMapper拷贝属性
2、PageRequest.Of方法进行分页参数构建
3、Paging分页对象的构建
4、PagingDozer对象的封装
5、分类表的常见结构设计
6、无限级分类的数据表达方式(自定义协议路径)
7、分类冗余字段设计
8、JPA接口命名规则
9、Java Bean中可不可以写业务逻辑
10、jSR303校验的message模板配置
11、规格、规格名与规格值的设计
12、通用泛型类映射方案详解
13、单体JSON对象的映射处理
14、数组类型JSON与List的映射
15、谈Java类的内聚性、方法外置的问题 - 第17周 令牌与权限
- 本周我们将学习如何在SB中传输JWT令牌与权限控制
- 课程安排:
- 1、通用泛型类与java泛型的思考
2、循环序列化的解决方案
3、Java的Stream与Method Reference应用
4、自定义JPQL替代JPA命名方法
5、SpringBoot中的单元测试
6、精讲Optional精髓与价值(必看)
7、Optional的经典使用场景、Consumer与Supplier
8、Optional的链式操作与Function、Predicate、Filter
9、权限、分组与用户的关系精讲
10、自定义@ScopeLevel注解的机制
11、令牌与微信登录机制、 无感知二次登陆
12、微信用户体系验证服务
13、Sleeve-Mini小程序测试工具、 对Enumeration的理解
14、Auth0生成JWT令牌与微信身份认证
15、User实体分析与常见用户系统设计
16、JWT令牌的校验、获取Bearer Token
17、hasPermisson权限核查、 VerifyToken接口 - 第18周 优惠券、订单与支付系统
- 周简介:本周我们学习优惠券系统设计、订单与支付系统。本周内容较多,难度较大。涉及到支付、核销、核算等业务
- 课程安排:
- 1、优惠券系统设计分析
2、带有实际业务意义的多对多的第三张表
3、优惠券的适用范围限定
4、高可用性的实现与完善
5、优惠券状态不确定性的处理方案
6、多对多向一对多的转化思维、多级属性精简技巧
7、JPQL完成复杂的多表查询、查询全场券
8、超权问题、 LocalUser类的设计
9、ThreadLocal与线程安全、资源释放时机
10、优惠券领取与异步状态的不可靠性探讨
11、注意注入到容器里的对象是否是同一个对象
12、异步机制下的数据一致性不一定能100%保证
13、优惠券过期问题的处理方案
14、定时器的解决方案:主动轮询与被动消息触发
15、不能以状态枚举来作为优惠券过期的唯一判断标准
16、订单中的优惠券合法性校验
17、Order订单表的数据库设计
18、前端提交的Price是不可信的 - 第18+周 订单、延迟支付与库存归还
- 上周我们完成了订单、优惠券参数的校验,本周我们将实现”下单“这个操作。下单是一个很复杂的过程,因为我们实现的是延迟支付。延迟支付涉及到优惠券和库存的归还,这是一个非常值得探讨的问题。
- 课程安排:
- 课程安排:
1、订单校验-获取实时的Sku信息、构建CouponChecker
2、订单校验-优惠券过期时间校验、满减券计算
3、订单校验-浮点数价格运算利弊分析、银行家舍去算法
4、订单校验-RoundingMode模式
5、订单校验-SpringBoot默认注入单例模式所带来的额问题
6、订单校验-prototype多例模式的注入方案(ObjectFactory与动态代理)
7、订单校验-非SpringBoot托管的Java对象、价格校验收尾
8、订单校验-BO的概念与意义、全场券的计算、reduce函数的巧妙应用
9、订单校验-完成优惠券最终校验
10、订单校验-OrderChecker对象、校验项分析
11、订单校验-最大购买数量、售罄、超卖检验、校验CouponChecker
12、如何让Spring调用Bean的有参构造函数?
13、下单逻辑-谈订单号的特点与注意事项
14、下单逻辑-创建订单、订单的五种状态
15、库存扣减-乱序思维、不能SQL1查询SQL2减除库存
16、库存扣减-Java锁、悲观锁的解决方案探讨、乐观锁的应用
17、优惠券核销、测试下单
18、订单状态的查询-订单支付过期状态的不可信
19、订单状态的查询-追加PlacedTime下单时间和ExpiredTime过期时间
20、订单状态的查询-查询待支付订单、订单详情查询 - 第19周 微信支付、Redis与RocketMQ
- 本周讲解微信支付的预订单、回调信息处理;同时对于订单的过期状态我们需要使用延迟消息队列来触发,Redis的Key/Space 键名通知和RocketMQ都是非常好的延迟消息队列。
- 课程安排:
- 1、微信支付流程分析、微信支付配置类
2、订单过期时间的再次校验、订单是否取消的逻辑判断
3、统一下单(预订单)接口参数解析、常用参数组装
4、配置微信支付回调API地址、更新订单的PrepayId、微信支付签名计算
5、微信支付回调结果WxNotify接收与处理
6、从流中读取支付回调结果、更新订单状态Unpaid转为Paid
7、订单状态更新的加强判断逻辑、 微信支付测试
8、延迟消息队列是什么?能解决什么问题?
9、Redis键空间通知(KeySpaceNotifyfication)
10、key-event通知订阅机制、SpringBoot中的Redis配置
11、将订单、优惠券信息写入Redis、MessageListener
12、设置Listener和Topic、测试Listener
13、订单取消与库存归还-OrderMessageBO、RecoverStock
14、订单取消(3)优惠券归还与事件广播机制
15、作业:RocketMQ实现延迟消息队列
16.、RocketMQ概述
17、RocketMQ实现延迟消息队列触发定时器 - 阶段三:Java CMS后台管理系统-后端开发
- 第20周 Lin CMS入门与MyBatis
- 本周开始数据库之旅,服务端编程最重要的就是高效操作数据库,本周重点讲解MyBatis的应用和常用的SQL语句,系统提升数据库知识,不论是对项目开发还是个人成长都让你受益匪浅。
- 课程安排:
- 1、CMS动态分配权限是最核心的能力
2、LinCMS的前后端分离
3、Lin CMS是工程+SDK的开发框架
4、自定义业务的目录组织结构
5、LinCMSVue试运行与前后联调
6、Lin CMS中的三种数据库机制JPA、MyBatis与MyBatisPlus
7、MyBatis的项目目录组织结构
8、编写第一个MyBatis MapperXML
9、Mapper接口与MapperXML的扫描位置
10、调整代码目录
11、MyBatis的Insert
12、MyBatis使用注解编写SQL - 第21周 MyBatisPlus入门与进阶
- 本周,我们在MyBatis的基础上引入MyBatisPlus 看看MyBatisPlus到底好用在哪里本周,此外,我们还将学习Lin CMS内置的快捷方法、内置异常类
- 课程安排:
- 1、强大的LinCMS内置异常类剖析
2、为什么你看不懂源码
3、LinCMS中的软删除与物理删除
4、从UI交互谈程序员的综合素质
5、连表查询的一种方案:单表查询
6、MyBatisPlus的QueryWrapper
7、QueryWrapper的lambada写法
8、CodeGenerator快速生成模板
9、一对多关系的多表是否可复用探讨
10、一对多的删除(级联删除)
11、Create新增数据
12、图片资源与服务器交互全流程解析
13、LinCMS文件上传系统解析 - 第22周 CMS权限、双令牌机制解析
- CMS权限、双令牌(Access_Token、Refresh_Token)大解密
- 课程安排:
- 1、 LinCMS权限系统要素
2、 LinCMS动态权限剖析
3、LinCMS权限系统
4、谈字段级别的权限控制方案
5、Web开发中的双令牌(access_token和refresh_token)
6、双令牌(ac_token和re_token)机制全解析
7、谈JWT令牌安全性的问题
8、系统日志与行为日志机制解析
9、商品管理操作需求分析
10、商品详情数据查询思路分析
11、MyBatis实体映射到DO的意义
12、MyBatis的复杂多表查询分析
13、Mybatis联表查询、带入参数与条件 - 第23周 MyBatisPlus高级技巧及结束语
- 本周,随着业务的复杂,我们将用到MyBatis的更多高级特性,以处理复杂的查询和添加。在这个实际的复杂业务中,我们可以体会到MyBatis的强大
- 课程安排:
- 1、即时搜索的意义
2、一行代码一个接口是如何实现的?
3、MyBatis多对多表查询技巧
4、MyBatis如何插入复杂的数据(关联多个表的新增)
5、MyBatis插入复杂数据-分析SPU的录入难点
6、MyBatis插入复杂数据-基础校验与业务校验
7、MyBatis复杂新增-MBP的批量插入saveBatch
8、MyBatis复杂新增-测试批量插入
9、MyBatis复杂新增-批量插入Spu详情数据
10、MyBatis复杂新增-直接操作多对多中间表完成新增多对多 - 阶段四:Vue 构建超好用CMS后台管理系统前端
- 第24周 走进Vue3.0
- 本周我们开始Vue3.0基础的学习。包括Vue3.0的新特性,改变;Vue的思想,Vue3.0的初始化与常用指令等
- 课程安排:
- 1、Vue的思想、Web前端发展与Vue3.0的新特性
2、Vue3.0的变化综述
3、Vue的一些必备基础与前端开发工程师的基本要求
4、前端发展的4个阶段
5、服务端渲染VS前端渲染
6、下载Vue3.0的单文件核心库
7、VueCli4.x版本创建Vue3.0应用程序
8、单文件的Vue与2.xVue的Options风格
9、第一个Vue3.0的Demo
10、Vue3的初始模型小结
11、第一个Vue的指令v-text - 第25周 Vue3.0中的响应式对象
- 本周,我们重点学习 Vue3中的响应式对象。响应式对象的应用和定义是Vue3中非常重要的内容,和Vue2有很大的区别
- 课程安排:
- 1、Vue基础
2、列表渲染、条件渲染
3、属性计算
4、Vue组件化
5、插槽
6、Vue指令
7、Vue事件
8、Vue其他基础知识
9、数据绑定 - 第26周 Vue3.0 中的组件
- 本周,我们开始学习Vue中最为重要的组件化编程学习。组件化编程是Vue中的核心概念,在Vue3中组件的构建方式也和vue2是所不同的。此外,我们将做一个小demo在实战中进一步理解Vue3
- 课程安排:
- 1、Vue
2、Vue进阶技术
3、Vuex状态管理
4、Vue3.0新增技术
5、自定义Vue指令
6、侦听器
7、Class与Style
8、Mixin与过滤器
9、Vue其他进阶知识 - 第27周 vue-router与vuex
- 在vue3.0中,router和2.x是有所区别的,本周我们重点学习vue-router与vuex全局状态管理。vue-router和vuex是vue工程化中非常重要的技术
- 课程安排:
- 1、Table组件与各种用法
2、数据导出组件/表单组件
3、消息推送组件/Button按钮组件
4、前端的面向对象编程体系
5、根据实际需求灵活添加组件
6、图片轮换与排序 - 第28周 动态组件与Vuex全局状态管理
- 本周我们将学习动态组件,并总结在Vue中切换组件的4种方式:显示隐藏、条件渲染、路由切换与动态组件。我们会中间讲解Vuex的意义与使用场景
- 课程安排:
- 1、路由与动态路由
2、MVVM思想
3、模板与列表渲染/使用指令
4、组件化编程
5、前端权限控制/权限与渲染/异常处理
6、Lin-CMS-Core的HTTP请求机制
7、Lin-Component组件库讲解与使用 - 第29周 CMS电商管理系统前端搭建
- 本周我们将开始Lin-CMS-Vue的学习,综合前面学习的所有知识来一次真正的大实战
- 课程安排:
- 1、Lin-CMS-Vue的配置与启动
2、CMS的路由与导航系统
3、CMS的一级、二级以及三级菜单
4、CMS的ReuseTab与动态Tab栏
5、CMS的Logger日志系统/业务插件系统
6、用户系统/前端权限系统
7、商品SKU与SPU管理
8、规格管理/六宫格管理/分类管理/订单管理
9、收发货管理
10、微信模板消息 - 第30周 三端联调,全栈最后一公里。
- 本周我们将在CMS中进行诸如用户个人相关的数据管理开发,包括用户资料、用户收获地址、用户快递信息等功能,整个电商系统进行联调,打通微信小程序前端,java服务端,CMS管理系统。
- 课程安排:
- 1、三端项目Linux和云端部署(小程序+CMS+Java API)
2、三端部署原理与思路
3、Linux服务器上常用部署软件安装
4、小程序部署注意事项
5、SpringBoot部署注意事项
6、Lin CMS Vue部署方案
7、静态化部署探讨
文件目录:
Java全栈工程师-从Java后端到全栈完结无秘百度云下载 |
│ │ 课表.pdf |
│ │ |
│ ├─APPKEY |
│ │ │ APPKEY.txt |
│ │ │ data.zip |
│ │ │ 简单接口搭建教程.7z |
│ │ │ |
│ │ └─wxshop |
│ │ ├─MACOSX |
│ │ │ └─wxshop |
│ │ │ ..DS_Store |
│ │ │ .activity.json |
│ │ │ .banner.json |
│ │ │ .banner2.json |
│ │ │ .category.json |
│ │ │ .spu.json |
│ │ │ .theme.json |
│ │ │ .themes.json |
│ │ │ .title@interest.png |
│ │ │ |
│ │ └─wxshop |
│ │ activity.json |
│ │ banner.json |
│ │ banner2.json |
│ │ category.json |
│ │ spu.json |
│ │ theme.json |
│ │ themes.json |
│ │ title@interest.png |
│ │ |
│ ├─git |
│ │ deep-forest-master.zip |
│ │ missyou-master.zip |
│ │ Play-Algorithms-and-Data-Structures-master.zip |
│ │ sleeve-master.zip |
│ │ sleeve-mini-test-master.zip |
│ │ sparrow-master.zip |
│ │ |
│ ├─资料 |
│ │ 7七月的风袖-sketch(1).psd |
│ │ 7七月的风袖-sketch.psd |
│ │ app(1).json |
│ │ app.json |
│ │ Java 8实战.pdf |
│ │ Java核心技术 卷1 基础知识 原书第10版.pdf |
│ │ Java核心技术 卷2 高级特性 原书第10版.pdf |
│ │ lin-ui-ts.rar |
│ │ LunacySetup.exe |
│ │ MaxHeapDemo.zip |
│ │ navicat112premiumcsx64.exe |
│ │ navicat12112pre.zip |
│ │ navicatpre1212500.zip |
│ │ PatchNavicat.exe |
│ │ sku.gif |
│ │ sleeve-master.zip |
│ │ wecharCode.jar |
│ │ 字节面经.md |
│ │ 研发笔试题目-V5.0.docx |
│ │ 说明.txt |
│ │ |
│ ├─阶段1:小程序高级电商前端 |
│ │ ├─01.走进Web全栈工程师 |
│ │ │ 1-1 Java全栈序章.mp4 |
│ │ │ 1-2 长期课程规划与前置要求.mp4 |
│ │ │ 1-3 appkey申请、课程免费补充资料.mp4 |
│ │ │ 1-4 临时补充:关于appkey的申请(重要).mp4 |
│ │ │ 2-1 第一阶段第一次作业(风袖细节分析).mp4 |
│ │ │ 2-2 小程序注册与新建项目.mp4 |
│ │ │ 2-3 开发工具推荐(Vscode或者WebStorm).mp4 |
│ │ │ 2-4 《风袖》首页布局详尽分析.mp4 |
│ │ │ 2-5 第一阶段第二次作业(LinUI 瀑布流练习).mp4 |
│ │ │ 2-6 真实的项目必须是动态的、CMS可控的.mp4 |
│ │ │ 2-7 WebStorm开发小程序必备设置.mp4 |
│ │ │ 2-8 调用服务端API获取数据.mp4 |
│ │ │ 2-9 小程序开发前必备配置.mp4 |
│ │ │ 3-1 配置文件与第一次调用服务端API.mp4 |
│ │ │ 3-10 Lin UI安装、主题色配置与按需加载.mp4 |
│ │ │ 3-2 业务对象的重要性.mp4 |
│ │ │ 3-3 封装HTTP请求.mp4 |
│ │ │ 3-4 小程序中使用async和await的难点分析.mp4 |
│ │ │ 3-5 使用LinUI Promisic让小程序内置API支持Promise.mp4 |
│ │ │ 3-6 将回调函数全部替换为async和await.mp4 |
│ │ │ 3-7 获取banner数据.mp4 |
│ │ │ 3-8 Banner轮播图实现与插槽的基本概念.mp4 |
│ │ │ 3-9 npm的semver语法规则.mp4 |
│ │ │ 4-1 LinUI Grid组件构建分类六宫格 (上).mp4 |
│ │ │ 4-2 LinUI Grid构建分类六宫格(中).mp4 |
│ │ │ 4-3 LinUI Grid构建分类六宫格 (下).mp4 |
│ │ │ 4-4 组件设计与LinUI使用的几个非常重要的原则.mp4 |
│ │ │ 4-5 如果没有明确理由,不要固定高和宽.mp4 |
│ │ │ |
│ │ ├─02.Lin UI组件库的引入与编程原则 |
│ │ │ 1-1 优惠券的一些基本概念.mp4 |
│ │ │ 1-2 优惠券入口.mp4 |
│ │ │ 1-3 背景颜色到底怎么设置?.mp4 |
│ │ │ 1-4 页面到底是否应该合并HTTP请求?.mp4 |
│ │ │ 1-5 函数式编程概述.mp4 |
│ │ │ 1-6 第一阶段 第三次作业.mp4 |
│ │ │ 1-7 类可以保存数据,但对象可以保存状态.mp4 |
│ │ │ 1-8 重构Theme获取.mp4 |
│ │ │ 1-9 第一阶段第四次作业.mp4 |
│ │ │ 2-1 scroll-view组件的灵活应用.mp4 |
│ │ │ 2-2 是不是方法都需要加async和await?.mp4 |
│ │ │ 2-3 第一阶段第五次作业.mp4 |
│ │ │ 2-4 spu-scroll自定义组件 1.mp4 |
│ │ │ 2-5 Lin UI Price价格组件应用.mp4 |
│ │ │ |
│ │ ├─03.热身结束,开启试炼 |
│ │ │ 1-1 spu-scroll自定义组件2.mp4 |
│ │ │ 1-10 Hover点击态的应用与@import 公共样式表.mp4 |
│ │ │ 1-2 通过scroll-view抽象出的几个css编写原则.mp4 |
│ │ │ 1-3 WXS与小程序的内核简介.mp4 |
│ │ │ 1-4 WXS与Lin UI Filter的应用.mp4 |
│ │ │ 1-5 webstorm的骚操作自定义代码片段.mp4 |
│ │ │ 1-6 自定义组件的边距问题与外部样式类应用.mp4 |
│ │ │ 1-7 学会抽象来简化数据库表设计.mp4 |
│ │ │ 1-8 新监听器Observers与hot-list组件.mp4 |
│ │ │ 1-9 flex布局的灵活应用.mp4 |
│ │ │ 2-1 组件自定义性的终极方案:抽象节点.mp4 |
│ │ │ 2-2 防抖、截流与分页细节全分析.mp4 |
│ │ │ 2-3 Paging对象 一.mp4 |
│ │ │ 2-4 编程原则:多用return提前结束函数,少用else.mp4 |
│ │ │ 2-5 Paging对象 二.mp4 |
│ │ │ 2-6 Paging对象 三.mp4 |
│ │ │ 2-7 第一阶段第六次作业 Sku预研作业.mp4 |
│ │ │ 2-8 Pgaing对象 四.mp4 |
│ │ │ |
│ │ ├─04.攻克SKU和商品购物车 |
│ │ │ 1-1 l-water-flow抽象组件式深入剖析.mp4 |
│ │ │ 1-2 Lin UI Tag组件快速构建标签.mp4 |
│ │ │ 1-3 折扣价和原价的常见错误逻辑.mp4 |
│ │ │ 1-4 使用WXS解决复杂的逻辑问题.mp4 |
│ │ │ 1-5 瀑布流的初步成型.mp4 |
│ │ │ 1-6 动态计算图片高和宽.mp4 |
│ │ │ 1-7 Loading的思维逻辑:正在加载其实是一种常驻状态.mp4 |
│ │ │ 1-8 实现页底提示.mp4 |
│ │ │ 2-1 页面跳转与新机制EventChannel.mp4 |
│ │ │ 2-2 Spu、Sku、规格名和规格值.mp4 |
│ │ │ 2-3 从一个提问谈思考的精神.mp4 |
│ │ │ 2-4 调整思维,才能解决复杂的逻辑问题.mp4 |
│ │ │ 2-5 借助符号化的命名方式思考问题.mp4 |
│ │ │ 2-6 控制中心Realm与栅栏Fence.mp4 |
│ │ │ 2-7 fence与fence-group对象.mp4 |
│ │ │ 3-1 SKU方案整理 一:规格值的提取.mp4 |
│ │ │ 3-10 构建Cell对象.mp4 |
│ │ │ 3-2 SKU方案整理 二:核心问题是规格值状态的确定.mp4 |
│ │ │ 3-3 用矩阵的思想提取规格值.mp4 |
│ │ │ 3-4 数学小课堂:矩阵的转置与旋转.mp4 |
│ │ │ 3-5 矩阵的遍历.mp4 |
│ │ │ 3-6 Fence的实例化.mp4 |
│ │ │ 3-7 测试Fences.mp4 |
│ │ │ 3-8 自己实现矩阵的转置.mp4 |
│ │ │ 3-9 谈数学、面向对象与编程思维.mp4 |
│ │ │ |
│ │ ├─05.SKU核心:规格状态、编码、无货逻辑 |
│ │ │ 1-1 SKU串码编号.mp4 |
│ │ │ 1-2 Fence与规格名的对应关系.mp4 |
│ │ │ 1-3 Cell去重.mp4 |
│ │ │ 1-4 Cell自定义组件.mp4 |
│ │ │ 1-5 初步完成规格矩阵渲染.mp4 |
│ │ │ 1-6 SKU算法的难点是确定规格的禁用状态.mp4 |
│ │ │ 1-7 SKU核心算法剖析 一.mp4 |
│ │ │ 1-8 SKU核心算法其实就是一句话,我之前已经讲过了.mp4 |
│ │ │ 1-9 矩阵列不同规格的问题解答.mp4 |
│ │ │ 2-1 数学小课堂:排列组合在SKU中的应用.mp4 |
│ │ │ 2-10 获取Cell的行列号.mp4 |
│ │ │ 2-11 实现Cell的正选和反选(1).mp4 |
│ │ │ 2-11 实现Cell的正选和反选.mp4 |
│ │ │ 2-2 SkuCode类拆分Sku可能的路径.mp4 |
│ │ │ 2-3 Combination组合函数.mp4 |
│ │ │ 2-4 完成PathDict字典.mp4 |
│ │ │ 2-5 Cell的三种状态样式.mp4 |
│ │ │ 2-6 选中、禁用与可选状态的切换.mp4 |
│ │ │ 2-7 SKU选择的数据流向.mp4 |
│ │ │ 2-8 自定义组件事件跨越组件边界(Bubbles与Composed).mp4 |
│ │ │ 2-9 重新渲染矩阵与错误排查推演.mp4 |
│ │ │ 3-1 潜在路径PotentialPath分析.mp4 |
│ │ │ 3-2 正选Cell的规律推演.mp4 |
│ │ │ 3-3 反选Cell的规律推演.mp4 |
│ │ │ 3-4 SkuPending类的职责.mp4 |
│ │ │ 3-5 遍历所有Cell的潜在路径.mp4 |
│ │ │ 3-6 遍历所有Cell的潜在路径 二.mp4 |
│ │ │ 3-7 遍历所有Cell的潜在路径 三.mp4 |
│ │ │ 3-8 完成SKU的逻辑选择.mp4 |
│ │ │ |
│ │ ├─06.SKU收尾,优惠券、购物车讲解 |
│ │ │ 1-1 Realm骨架的完善.mp4 |
│ │ │ 1-10 规格选择提示的复杂逻辑处理 (二).mp4 |
│ │ │ 1-11 性能:setData性能探讨.mp4 |
│ │ │ 1-12 规格选择与SKU描述联动 一.mp4 |
│ │ │ 1-13 获取code码和确定的SKU.mp4 |
│ │ │ 1-14 确定MissingSpecKeys和CurrentSpecValues.mp4 |
│ │ │ 1-15 确定MissingSpecKeys和CurrentSpecValues 二.mp4 |
│ │ │ 1-16 终于完成了SKU,撒花,庆祝~.mp4 |
│ │ │ 1-2 默认SKU的概念与意义.mp4 |
│ │ │ 1-3 将默认SKU拆解后加入到SkuPending中.mp4 |
│ │ │ 1-4 从两个指标评估循环对性能造成的影响?.mp4 |
│ │ │ 1-5 完成默认规格渲染.mp4 |
│ │ │ 1-6 Sku描述数据与规格选择联动 一.mp4 |
│ │ │ 1-7 无规格商品的概念与意义.mp4 |
│ │ │ 1-8 无规格商品的具体处理流程.mp4 |
│ │ │ 1-9 规格选择提示的复杂逻辑处理(一).mp4 |
│ │ │ 2-1 l-counter数量选择器(核心组件).mp4 |
│ │ │ 2-2 详解l-counter的数量控制属性.mp4 |
│ │ │ 2-3 无货情况分析(操作Counter、默认SKU和无规格).mp4 |
│ │ │ 2-4 获取l-counter的选择数量.mp4 |
│ │ │ 2-5 三种触发无货状态的机制 (一).mp4 |
│ │ │ 2-6 Lin UI l-icon组件快速使用字体图标.mp4 |
│ │ │ 2-7 使用iconfont在线字体图标.mp4 |
│ │ │ 2-8 使用l-icon引入自定义字体图标.mp4 |
│ │ │ 2-9 当我们谈编程能力的时候,我们谈的是什么.mp4 |
│ │ │ 3-1 l-badge组件快速显示角标数字.mp4 |
│ │ │ 3-10 商品详情页面(一).mp4 |
│ │ │ 3-11 商品详情页(二).mp4 |
│ │ │ 3-12 商品详情(三)微信开放能力的限制.mp4 |
│ │ │ 3-13 商品详情页(四)l-button解决自定义样式.mp4 |
│ │ │ 3-14 商品详情(五)SpecChange事件.mp4 |
│ │ │ 3-15 商品详情(六)完成SpecContainer.mp4 |
│ │ │ 3-16 一种最笨但有效的查错方法.mp4 |
│ │ │ 3-17 用伪类模拟制表符效果.mp4 |
│ │ │ 3-18 商品详情图展示与隐藏页面滚动条方案.mp4 |
│ │ │ 3-2 使用l-popup从底部弹出Realm.mp4 |
│ │ │ 3-3 realm滑动控制适应不同高度.mp4 |
│ │ │ 3-4 优化realm的滚动条.mp4 |
│ │ │ 3-5 决定用户立即购买还是加入购物车.mp4 |
│ │ │ 3-6 规格的主观性与组合性.mp4 |
│ │ │ 3-7 可视规格的概念.mp4 |
│ │ │ 3-8 SketchFence可视规格的实现(一).mp4 |
│ │ │ 3-9 SketchFence可视规格的实现(二).mp4 |
│ │ │ 4-1 分类页面重难点分析.mp4 |
│ │ │ 4-10 加载分类数据与默认二级分类数据的确定.mp4 |
│ │ │ 4-11 二级分类的Grid显示(一).mp4 |
│ │ │ 4-12 二级分类显示切换.mp4 |
│ │ │ 4-13 二级分类跳转到Spu集合页面.mp4 |
│ │ │ 4-2 使用l-button快速实现搜索按钮.mp4 |
│ │ │ 4-3 欢迎加入Lin UI和Lin CMS开源项目.mp4 |
│ │ │ 4-4 l-segment组件的高级应用 (一).mp4 |
│ │ │ 4-5 l-segment高级应用(二).mp4 |
│ │ │ 4-6 动态计算窗口高度与px与rpx动态转换.mp4 |
│ │ │ 4-7 不同机型上px向rpx的转换.mp4 |
│ │ │ 4-8 动态计算Detail页面的Scroll-View高度.mp4 |
│ │ │ 4-9 分类加载的性能与体验优化探讨.mp4 |
│ │ │ |
│ │ ├─07.高级电商订单管理开发 与前端项目收尾 |
│ │ │ 1-1 搜索页面:l-search-bar搜索输入框的应用ev.mp4 |
│ │ │ 1-10 wx.lin的组件调用方式解析ev.mp4 |
│ │ │ 1-11 前端更新说明(未完待续)ev.mp4 |
│ │ │ 1-2 历史搜索记录类ev.mp4 |
│ │ │ 1-3 数据结构队列在HistoryKeyword中的应用ev.mp4 |
│ │ │ 1-4 设计模式:代理模式在HistoryKeyword中的应用ev.mp4 |
│ │ │ 1-5 JS中的单例模式应用ev.mp4 |
│ │ │ 1-6 热门关键词与l-tag的选中状态ev.mp4 |
│ │ │ 1-7 显示搜索结果ev.mp4 |
│ │ │ 1-8 二种搜索场景(关键词和标签)ev.mp4 |
│ │ │ 1-9 空数据和空关键词处理ev.mp4 |
│ │ │ 2-1 商品加入购物车(1)ev.mp4 |
│ │ │ 2-2 商品加入购物车(2)自定义shopping事件ev.mp4 |
│ │ │ 2-3 wx-key警告问题修正ev.mp4 |
│ │ │ 2-4 商品加入购物车(3)Cart对象与CartItem对象ev.mp4 |
│ │ │ 2-5 商品加入购物车(4)代理模式与购物车缓存ev.mp4 |
│ │ │ 2-6 商品加入购物车(5)推入商品ev.mp4 |
│ │ │ 2-7 商品加入购物车(6)Cart对象的移除函数ev.mp4 |
│ │ │ 3-1 购物车业务初步分析ev.mp4 |
│ │ │ 3-10 购物车子项(3)ev.mp4 |
│ │ │ 3-11 数据绑定的延迟问题ev.mp4 |
│ │ │ 3-12 数据绑定多次触发问题探讨ev.mp4 |
│ │ │ 3-13 不稳定变量绑定的解决方案ev.mp4 |
│ │ │ 3-14 LinUI的SlideView组件ev.mp4 |
│ │ │ 3-15 滑动删除CartItemev.mp4 |
│ │ │ 3-16 删除购物车子项与全选问题探讨ev.mp4 |
│ │ │ 3-2 加载购物车缓存数据ev.mp4 |
│ │ │ 3-3 空数据组件(没有数据时的提示)ev(1).mp4 |
│ │ │ 3-3 空数据组件(没有数据时的提示)ev.mp4 |
│ │ │ 3-4 控制tabbar的浮标数字ev(1).mp4 |
│ │ │ 3-4 控制tabbar的浮标数字ev.mp4 |
│ │ │ 3-5 自定义CheckBox组件ev(1).mp4 |
│ │ │ 3-5 自定义CheckBox组件ev.mp4 |
│ │ │ 3-6 CartItem的下架、仅剩和售罄的状态ev.mp4 |
│ │ │ 3-7 三种状态的显示(1)ev.mp4 |
│ │ │ 3-8 购物车子项(1)ev.mp4 |
│ │ │ 3-9 购物车子项(2)ev.mp4 |
│ │ │ |
│ │ ├─第7+周 购物车价格同步、优惠券、下单与微信支付 |
│ │ │ 1-1 购物车全选操作(1)勾选、取消勾选状态切换ev.mp4 |
│ │ │ 1-2 购物车全选(2)UI、缓存与组件三方的数据一致性ev.mp4 |
│ │ │ 1-3 购物车全选(3)全选的思考方式ev.mp4 |
│ │ │ 1-4 购物车全选(4)onShow时的全选ev.mp4 |
│ │ │ 1-5 购物车全选(5)onDelete和onChecke时的全选改变ev.mp4 |
│ │ │ 10-1 提交订单(1)获取用户所选择的收货地址ev.mp4 |
│ │ │ 10-2 向服务器提交订单并取得订单ID号ev.mp4 |
│ │ │ 10-3 订单下单失败的逻辑处理ev.mp4 |
│ │ │ 10-4 下单后移除购物车商品ev.mp4 |
│ │ │ 10-5 前端拉起微信支付与支付测试ev.mp4 |
│ │ │ 10-6 订单防重的相关细节设计ev.mp4 |
│ │ │ 10-7 支付成功和失败的逻辑判断ev.mp4 |
│ │ │ 10-8 支付成功和失败的跳转逻辑ev.mp4 |
│ │ │ 11-1 立即购买的逻辑ev.mp4 |
│ │ │ 11-2 我的页面结构分析ev.mp4 |
│ │ │ 11-3 LinUI Avatar组件显示微信头像和昵称ev.mp4 |
│ │ │ 11-4 全新的获取用户微信信息机制解析ev.mp4 |
│ │ │ 11-5 l-badge徽章组件ev.mp4 |
│ │ │ 11-6 获取各状态订单的数量ev.mp4 |
│ │ │ 11-7 LinUI List组件的应用ev.mp4 |
│ │ │ 12-1 小程序结束语ev.mp4 |
│ │ │ 2-1 购物车价格合计(1)Calculator类ev.mp4 |
│ │ │ 2-2 购物车合计(2)计算总价ev.mp4 |
│ │ │ 2-3 购物车合计(3)Counter组件数值浮动ev.mp4 |
│ │ │ 2-4 购物车合计(4)JS浮点数不精确的解决方案ev.mp4 |
│ │ │ 2-5 购物车合计(5)移除与勾选时的合计计算ev.mp4 |
│ │ │ 2-6 购物车合计(6)全选价格计算(补充)ev.mp4 |
│ │ │ 3-1 服务器数据同步(1)更新时机问题探讨ev.mp4 |
│ │ │ 3-2 服务器数据同步(2)获取购物车中的SKU的最新数据ev.mp4 |
│ │ │ 3-3 服务器数据同步(3)同步缓存ev.mp4 |
│ │ │ 3-4 服务器数据同步(3)修正wxkey的警告ev.mp4 |
│ │ │ 4-1 订单预览(1)ev.mp4 |
│ │ │ 4-2 订单预览(2)用户微信收货地址授权流程与原理ev.mp4 |
│ │ │ 4-3 收货地址组件(1)ev.mp4 |
│ │ │ 4-4 组件授权与API授权的不同机制剖析ev.mp4 |
│ │ │ 4-5 小程序原生支持Promiseev.mp4 |
│ │ │ 4-6 收货地址组件(2)显示用户收货地址ev.mp4 |
│ │ │ 4-7 收货地址组件(3)缓存用户地址ev.mp4 |
│ │ │ 4-8 收货地址组件(4)从用户setting中获取单项授权情况ev.mp4 |
│ │ │ 4-9 打开用户的授权配置(先调用Dialog才能触发OpenSetting)ev.mp4 |
│ │ │ 5-1 订单商品预览数据获取ev.mp4 |
│ │ │ 5-2 构建OrderItem模型类ev.mp4 |
│ │ │ 5-3 再次同步服务端SKU数据ev.mp4 |
│ │ │ 5-4 OrderItem的校验ev.mp4 |
│ │ │ 5-5 Order的基础校验ev.mp4 |
│ │ │ 5-6 纯前端课程结束说明ev.mp4 |
│ │ │ 6-1 优惠券活动入口ev.mp4 |
│ │ │ 6-2 根据活动名称请求优惠券信息ev.mp4 |
│ │ │ 6-3 前端登录与JWT令牌(1)ev.mp4 |
│ │ │ 6-4 前端登录与JWT令牌(2)前端携带令牌思路与时机ev.mp4 |
│ │ │ 6-5 wx.request未返回Promise的修复ev.mp4 |
│ │ │ 6-6 前端登录与JWT令牌(3)在Http请求中加入BearerTokenev.mp4 |
│ │ │ 6-7 token无法保证100%有效的问题.mp4 |
│ │ │ 6-8 二次重发与防止无限二次重发ev.mp4 |
│ │ │ 7-1 前端异常处理(1)异常的分类ev.mp4 |
│ │ │ 7-2 可复用的Message与定制化Messageev.mp4 |
│ │ │ 7-3 前端Message与Code的重定义ev.mp4 |
│ │ │ 7-4 调用失败的异常处理ev.mp4 |
│ │ │ 7-5 空数据的情况(单个空数据和列表空数据)ev.mp4 |
│ │ │ 7-6 单数据空值的转化处理ev.mp4 |
│ │ │ 7-7 调用方的个性化异常处理方案ev.mp4 |
│ │ │ 7-8 异常处理的测试ev.mp4 |
│ │ │ 8-1 优惠券中心的前期工作与状态分析ev.mp4 |
│ │ │ 8-2 显示优惠券与Lin UI折叠面板组件ev.mp4 |
│ │ │ 8-3 优惠券的领取操作逻辑ev.mp4 |
│ │ │ 8-4 二次点击使用优惠券ev.mp4 |
│ │ │ 8-5 从商品详情领取优惠券逻辑分析ev.mp4 |
│ │ │ 8-6 取当前商品适用的前两张优惠券ev.mp4 |
│ │ │ 8-7 按分类获取全部可用优惠券ev.mp4 |
│ │ │ 8-8 获取优惠券及优惠券的适用分类ev.mp4 |
│ │ │ 8-9 OrderItem的呈现ev.mp4 |
│ │ │ 9-1 Coupon-Picker组件ev.mp4 |
│ │ │ 9-2 优惠券的分类使用条件剖析ev.mp4 |
│ │ │ 9-3 2次Reduce计算分类总价ev.mp4 |
│ │ │ 9-4 判断优惠券是否可以使用在当前订单中ev.mp4 |
│ │ │ 9-5 优惠券选择的切换逻辑ev.mp4 |
│ │ │ 9-6 优惠券折扣价格计算(1)ev.mp4 |
│ │ │ 9-7 优惠券价格计算(2)几种舍入算法ev.mp4 |
│ │ │ 9-8 总金额、优惠金额与最终金额的计算ev.mp4 |
│ │ │ |
│ │ └─资料 |
│ │ sleeve-master.zip |
│ │ |
│ ├─阶段2:Java与SpringBoot部分 |
│ │ ├─08.初识SpringBoot |
│ │ │ 1-1 第二阶段开篇词.mp4 |
│ │ │ 1-2 java web框架的发展历史.mp4 |
│ │ │ 1-3 SpringBoot与面向抽象编程.mp4 |
│ │ │ 1-4 第二阶段第一次作业:理解IOC与DI(四个要求).mp4 |
│ │ │ 2-1 完全搞懂SpringBoot版本号(主、次、增量、发布).mp4 |
│ │ │ 2-2 JDK版本的选择与安装.mp4 |
│ │ │ 2-3 Java的2种构建工具:Maven与Gradle.mp4 |
│ │ │ 2-4 Maven的作用与安装.mp4 |
│ │ │ 2-5 开发工具使用Idea和三种创建SpringBoot项目的方式.mp4 |
│ │ │ 2-6 使用Spring Initializr初始化SpringBoot应用程序.mp4 |
│ │ │ 2-7 SpringBoot应用程序的基本目录结构.mp4 |
│ │ │ 2-8 POM文件解析与Maven版本踩坑.mp4 |
│ │ │ 3-1 运行我的第一个SpringBoot应用.mp4 |
│ │ │ 3-2 新建API包与控制器.mp4 |
│ │ │ 3-3 使用ResponseBody注解代替ServletResponse.mp4 |
│ │ │ 3-4 SpringBoot热重启配置.mp4 |
│ │ │ 3-5 几个常用构建RESTFulAPI的注解.mp4 |
│ │ │ 3-6 @RestController注解.mp4 |
│ │ │ |
│ │ ├─09.Java编程思想深度理论知识 |
│ │ │ 1-1 Java是一个笨重的垃圾语言吗?.mp4 |
│ │ │ 1-2 SpringBoot为什么有这么多复杂的概念?.mp4 |
│ │ │ 1-3 开闭原则OCP.mp4 |
│ │ │ 1-4 为什么要面向抽象编程.mp4 |
│ │ │ 1-5 面向抽象的常见手段:interface、工厂模式与IOC和DI.mp4 |
│ │ │ 2-1 英雄联盟小游戏的最简单版本.mp4 |
│ │ │ 2-10 通过反射机制消除所有的变化.mp4 |
│ │ │ 2-2 第一个烂大街的代码风格.mp4 |
│ │ │ 2-3 使用Interface的抽象风格.mp4 |
│ │ │ 2-4 interface统一方法调用,但无法统一实例化.mp4 |
│ │ │ 2-5 抽象的难点在于new对象.mp4 |
│ │ │ 2-6 只有一段代码不负责对象实例化,才能保持稳定.mp4 |
│ │ │ 2-7 工厂模式分离对象实例化.mp4 |
│ │ │ 2-8 稳定性是相对的,我们需要将不稳定的代码隔离.mp4 |
│ │ │ 2-9 变化是导致代码不稳定的本质原因.mp4 |
│ │ │ 3-1 工厂模式+反射并不是IOC和DI.mp4 |
│ │ │ 3-10 从DI的角度理解IOC.mp4 |
│ │ │ 3-11 IOC的终极奥义.mp4 |
│ │ │ 3-2 配置文件的变化是允许的,并不违反OCP.mp4 |
│ │ │ 3-3 IOC和DI的雏形.mp4 |
│ │ │ 3-4 IOC的示例.mp4 |
│ │ │ 3-5 为什么引入容器后可以让系统变得稳定?.mp4 |
│ │ │ 3-6 DIP依赖倒置到底是什么.mp4 |
│ │ │ 3-7 DI依赖注入的意义.mp4 |
│ │ │ 3-8 依赖注入的原理.mp4 |
│ │ │ 3-9 容器的作用是在装配对象.mp4 |
│ │ │ |
│ │ ├─10.Spring与SpringBoot理论篇 |
│ │ │ 1-1 SpringBoot理论篇导学.mp4 |
│ │ │ 1-2 Spring、SpringMVC与SpringBoot的关系与区别.mp4 |
│ │ │ 1-3 什么是SpringBoot核心优势-自动配置(作业).mp4 |
│ │ │ 1-4 把握Spring的几个重要目的,提升学习效率.mp4 |
│ │ │ 2-1 SpringBoot最基础的编程模式@Component+@Autowired(1).mp4 |
│ │ │ 2-1 SpringBoot最基础的编程模式@Component+@Autowired.mp4 |
│ │ │ 2-2 Stereotype Annotations 模式注解(1).mp4 |
│ │ │ 2-2 Stereotype Annotations 模式注解.mp4 |
│ │ │ 2-3 Spring的实例化和依赖注入时机与延迟实例化.mp4 |
│ │ │ 2-4 成员变量注入、Setter注入与构造注入.mp4 |
│ │ │ 2-5 一个接口多个实现类的处理.mp4 |
│ │ │ 2-6 @Autowired按类型注入.mp4 |
│ │ │ 2-7 被动推断注入与主动选择注入.mp4 |
│ │ │ 2-8 应对的变化的两种方案(策略模式与属性配置).mp4 |
│ │ │ 3-1 @Configuration配置类.mp4 |
│ │ │ 3-2 @Configuration表面意义上的解释.mp4 |
│ │ │ 3-3 @Configuration是用来替换bean的xml配置.mp4 |
│ │ │ 3-4 变化最终要被隔离到配置文件中.mp4 |
│ │ │ 3-5 @Configuation和@Bean的真实作用.mp4 |
│ │ │ 3-6 深入剖析@Configuration的意义.mp4 |
│ │ │ 3-7 @Configuration是一种编程模式.mp4 |
│ │ │ |
│ │ ├─11.sprinboot的条件注解与配置 |
│ │ │ 1-1 Bean名称与几种注入方式补遗.mp4 |
│ │ │ 1-2 @ComponentScan包扫描机制.mp4 |
│ │ │ 1-3 策略模式的几种实现方案.mp4 |
│ │ │ 1-4 条件组件@Conditional的基本用法.mp4 |
│ │ │ 1-5 Condition接口的ConditionContext参数.mp4 |
│ │ │ 1-6 成品条件组件@ConditionalOnProperty.mp4 |
│ │ │ 1-7 @ConditionalOnBean条件注解.mp4 |
│ │ │ 2-1 SpringBoot自动配置原理导学.mp4 |
│ │ │ 2-2 @SpringBootApplication注解的理解.mp4 |
│ │ │ 2-3 SpringBoot自动装配原理解析.mp4 |
│ │ │ 2-4 自己编写一个Spring应用启动类.mp4 |
│ │ │ 2-5 @Import 的两种用法.mp4 |
│ │ │ 2-6 SpringBoot自动装配的spring.factories文件.mp4 |
│ │ │ 2-7 Java SPI 机制解析.mp4 |
│ │ │ 2-8 深度理论课总结.mp4 |
│ │ │ |
│ │ ├─12.Java异常深度剖析 |
│ │ │ 1-1 全局异常处理机制导学.mp4 |
│ │ │ 1-2 如何统一捕获异常?.mp4 |
│ │ │ 1-3 异常分类Error、CheckedException与RunTimeException.mp4 |
│ │ │ 1-4 彻底理解CheckedException和RuntimeException.mp4 |
│ │ │ 1-5 自定义HTTPException异常类.mp4 |
│ │ │ 1-6 同时监听Exception和HTTPException.mp4 |
│ │ │ 1-7 异常的深度思考和理解.mp4 |
│ │ │ 1-8 在@ExceptionHandler中返回Unify消息.mp4 |
│ │ │ 2-1 使用注解修改HTTPStatus.mp4 |
│ │ │ 2-10 完成自定义PrefixUrl.mp4 |
│ │ │ 2-2 处理自定义HTTPException.mp4 |
│ │ │ 2-3 为什么需要将异常信息写在配置文件里.mp4 |
│ │ │ 2-4 自定义配置类管理配置文件.mp4 |
│ │ │ 2-5 HTTPException的意义.mp4 |
│ │ │ 2-6 SpringBoot主动发现机制和思想.mp4 |
│ │ │ 2-7 根据目录结构自动生成路由前缀.mp4 |
│ │ │ 2-8 自定义RequestMappingInfo.mp4 |
│ │ │ 2-9 通过接口的形式发现类.mp4 |
│ │ │ |
│ │ ├─13.参数校验机制与LomBok工具集的使用 |
│ │ │ 1-1 修改Properties文件的编码解决乱码问题.mp4 |
│ │ │ 1-2 参数校验机制导学.mp4 |
│ │ │ 1-3 获取URL路径中的参数和查询茶树.mp4 |
│ │ │ 1-4 数据传输对象DTO的接收.mp4 |
│ │ │ 1-5 LomBok的基本使用方式.mp4 |
│ │ │ 1-6 LomBok中关于构造函数的几个注解.mp4 |
│ │ │ 1-7 @Builder构造器模式的使用.mp4 |
│ │ │ 1-8 JSR-269与Builder模式的序列化.mp4 |
│ │ │ 2-1 使用@Validated注解进行基础参数校验.mp4 |
│ │ │ 2-2 验证HTTP Body中的参数与级联校验.mp4 |
│ │ │ 2-3 补充:@Validated和@Valid注解的关系.mp4 |
│ │ │ 2-4 自定义校验注解.mp4 |
│ │ │ 2-5 自定义校验注解的关联类(1).mp4 |
│ │ │ 2-6 获取自定义校验注解的参数.mp4 |
│ │ │ 2-7 捕获DTO类的参数校验异常信息.mp4 |
│ │ │ 2-8 捕获Url和查询参数的异常.mp4 |
│ │ │ |
│ │ ├─14.项目分层设计与JPA技术 |
│ │ │ 1-1 JPA导学(新年快乐).mp4 |
│ │ │ 1-2 Service业务逻辑层(服务层)的建立.mp4 |
│ │ │ 1-3 层与层之间是否一定要用interface建立关联.mp4 |
│ │ │ 1-4 创建数据表的3种主要方式.mp4 |
│ │ │ 1-5 新建数据库和数据表.mp4 |
│ │ │ 1-6 yml格式的配置文件.mp4 |
│ │ │ 1-7 多环境配置文件(profiles)以及启用方式.mp4 |
│ │ │ 2-1 mysql数据库连接配置.mp4 |
│ │ │ 2-2 Maven依赖无法安装的几个解决方案.mp4 |
│ │ │ 2-3 使用ORM的方式生成数据表.mp4 |
│ │ │ 2-4 常用实体类注解与ORM生成表的优劣势浅谈.mp4 |
│ │ │ 2-5 多对多关系的第三张表探讨(重点).mp4 |
│ │ │ 2-6 数据库设计步骤及数据库优化原则.mp4 |
│ │ │ 2-7 实体与实体之间一对多关系配置@oneToMany.mp4 |
│ │ │ 2-8 指定外键字段与是否需要物理外键.mp4 |
│ │ │ 3-1 JPA的Repository定义.mp4 |
│ │ │ 3-2 执行Repository查询语句.mp4 |
│ │ │ 3-3 懒加载和急加载.mp4 |
│ │ │ 3-4 双向一对多配置.mp4 |
│ │ │ 3-5 双向一对多的外键配置问题.mp4 |
│ │ │ 3-6 多对多关系配置@ManyToMany.mp4 |
│ │ │ 3-7 单向多对多关系配置与常见问题.mp4 |
│ │ │ 3-8 双向多对多配置.mp4 |
│ │ │ 3-9 如何禁止JPA生成物理外键(1).mp4 |
│ │ │ 3-9 如何禁止JPA生成物理外键.mp4 |
│ │ │ |
│ │ ├─15.ORM的概念与思维 |
│ │ │ 1-1 谈谈ORM的概念、意义与常见误区问题.mp4 |
│ │ │ 1-2 数据库表数据的设计、导入与导出.mp4 |
│ │ │ 1-3 项目开发顺序.mp4 |
│ │ │ 1-4 导入项目的SQL文件.mp4 |
│ │ │ 1-5 逆向生成Entity.mp4 |
│ │ │ 1-6 简化实体字段.mp4 |
│ │ │ 1-7 三个时间字段的说明(create update delete).mp4 |
│ │ │ 1-8 提取BaseEntity基类.mp4 |
│ │ │ 2-1 访问Banner接口.mp4 |
│ │ │ 2-2 @MappedSuperClass的作用.mp4 |
│ │ │ 2-3 Jaskson序列化库的重要配置(SNAKECASE、时间戳).mp4 |
│ │ │ 2-4 Theme接口开发.mp4 |
│ │ │ 2-5 Theme表设计.mp4 |
│ │ │ 2-6 表的列行转换思维.mp4 |
│ │ │ 2-7 SPU表设计分析.mp4 |
│ │ │ 2-8 静态资源托管的几种方式.mp4 |
│ │ │ 2-9 SpringBoot访问静态资源.mp4 |
│ │ │ 3-1 为什么需要提供多个SPU数据的接口?.mp4 |
│ │ │ 3-2 Spu实体映射(增补).mp4 |
│ │ │ 3-3 Spu详情数据查询.mp4 |
│ │ │ 3-4 查询列表类数据.mp4 |
│ │ │ 3-5 延迟思考,逐层深入.mp4 |
│ │ │ 3-6 数据库多层关系设计思考与冗余字段设计原则.mp4 |
│ │ │ 3-7 导航关系的配置原则(需要时才配置).mp4 |
│ │ │ 3-8 Latest接口SQL查询分析.mp4 |
│ │ │ 3-9 VO视图层对象的概念和意义.mp4 |
│ │ │ |
│ │ ├─16.JPA的多种查询规则 |
│ │ │ 1-1 DozerBeanMapper拷贝属性.mp4 |
│ │ │ 1-10 JPA接口命名规则.mp4 |
│ │ │ 1-2 PageRequest.Of方法进行分页参数构建.mp4 |
│ │ │ 1-3 BO对象与分页参数转换.mp4 |
│ │ │ 1-4 Paging分页对象的构建.mp4 |
│ │ │ 1-5 PagingDozer对象的封装.mp4 |
│ │ │ 1-6 Paging对象测试与Java的伪泛型缺陷.mp4 |
│ │ │ 1-7 分类表的常见结构设计.mp4 |
│ │ │ 1-8 无限级分类的数据表达方式(自定义协议路径).mp4 |
│ │ │ 1-9 分类冗余字段设计.mp4 |
│ │ │ 2-1 Java Bean中可不可以写业务逻辑.mp4 |
│ │ │ 2-2 jSR303校验的message模板配置.mp4 |
│ │ │ 2-3 规格、规格名与规格值的设计(上).mp4 |
│ │ │ 2-4 规格、规格名和规格值的设计(中).mp4 |
│ │ │ 2-5 规格、规格名和规格值的设计(下).mp4 |
│ │ │ 3-1 通用泛型映射方案(1).mp4 |
│ │ │ 3-2 通用泛型类映射方案(2).mp4 |
│ │ │ 3-3 单体JSON对象的映射处理(1).mp4 |
│ │ │ 3-4 单体JSON到Map的映射(2).mp4 |
│ │ │ 3-5 单体JSON与Map的映射(3).mp4 |
│ │ │ 3-6 数组类型JSON与List的映射(4).mp4 |
│ │ │ 3-7 谈Java类的内聚性、方法外置的问题.mp4 |
│ │ │ |
│ │ ├─17.令牌与权限 |
│ │ │ 1-1 Java的泛型是编译期间的而非运行期间.mp4 |
│ │ │ 1-2 通用泛型类与强类型转换 (1).mp4 |
│ │ │ 1-3 通用泛型类与List的转换(2).mp4 |
│ │ │ 1-4 更简单的泛型反序列化方法(3).mp4 |
│ │ │ 1-5 方案调整与优化.mp4 |
│ │ │ 1-6 @Where条件查询.mp4 |
│ │ │ 2-1 Category分类业务分析.mp4 |
│ │ │ 2-2 Category接口数据结构分析与探讨.mp4 |
│ │ │ 2-3 循环序列化的解决方案.mp4 |
│ │ │ 2-4 Java的Stream与Method Reference应用.mp4 |
│ │ │ 2-5 GridCategory接口.mp4 |
│ │ │ 2-6 Theme业务及模板概念分析.mp4 |
│ │ │ 2-7 自定义JPQL替代JPA命名方法.mp4 |
│ │ │ 3-1 Optional的意义与价值.mp4 |
│ │ │ 3-2 SpringBoot中的单元测试.mp4 |
│ │ │ 3-3 Optional的精髓.mp4 |
│ │ │ 3-4 Optional的经典使用场景、Consumer与Supplier.mp4 |
│ │ │ 3-5 Optional的链式操作与Function、Predicate、Filter.mp4 |
│ │ │ 4-1 权限、分组与用户的关系探讨.mp4 |
│ │ │ 4-2 @ScopeLevel注解的机制.mp4 |
│ │ │ 4-3 令牌与微信登录机制.mp4 |
│ │ │ 4-4 无感知二次登陆问题探讨.mp4 |
│ │ │ 4-5 getToken接口.mp4 |
│ │ │ 4-6 TokenPassword校验注解.mp4 |
│ │ │ 4-7 错误消息的模板参数.mp4 |
│ │ │ 4-8 微信验证服务.mp4 |
│ │ │ 4-9 Sleeve-Mini小程序测试工具准备.mp4 |
│ │ │ 5-1 获取用户OpenId.mp4 |
│ │ │ 5-2 JWT令牌全流程解析.mp4 |
│ │ │ 5-3 User实体分析与常见用户系统设计.mp4 |
│ │ │ 5-4 User对象的写入.mp4 |
│ │ │ 5-5 Auth0的JWT.mp4 |
│ │ │ 5-6 Auth0生成JWT令牌.mp4 |
│ │ │ 5-7 令牌生成测试.mp4 |
│ │ │ 6-1 JWT令牌的校验.mp4 |
│ │ │ 6-2 Filter、Interceptor、AOP机制的区别于联系.mp4 |
│ │ │ 6-3 PermissionInterceptor的逻辑分析.mp4 |
│ │ │ 6-4 获取Bearer Token.mp4 |
│ │ │ 6-5 hasPermisson权限核查.mp4 |
│ │ │ 6-6 注册Interceptor.mp4 |
│ │ │ 6-7 数组越界问题(修复).mp4 |
│ │ │ 6-8 VerifyToken接口.mp4 |
│ │ │ |
│ │ ├─18+订单、延迟支付与库存归还 |
│ │ │ 1-1 订单校验(12)BO的概念与意义.mp4 |
│ │ │ 1-10 订单校验(21)OrderChecker作为数据提供者.mp4 |
│ │ │ 1-11 订单校验(22)订单校验总结与探讨.mp4 |
│ │ │ 1-2 订单校验(13)全场券的计算.mp4 |
│ │ │ 1-3 订单校验(14)reduce函数的巧妙应用.mp4 |
│ │ │ 1-4 订单校验(15)完成优惠券最终校验.mp4 |
│ │ │ 1-5 订单校验(16)OrderChecker对象.mp4 |
│ │ │ 1-6 订单校验(17)OrderChecker校验项分析.mp4 |
│ │ │ 1-7 订单校验(18)最大购买数量、售罄、超卖检验.mp4 |
│ │ │ 1-8 订单校验(19)如何让Spring调用Bean的有参构造函数?.mp4 |
│ │ │ 1-9 订单校验(20)校验CouponChecker.mp4 |
│ │ │ 2-1 下单逻辑(1)谈订单号的特点与注意事项.mp4 |
│ │ │ 2-2 下单逻辑(2)创建订单.mp4 |
│ │ │ 2-3 下单逻辑(3)订单的五种状态.mp4 |
│ │ │ 3-1 库存扣减(1)乱序思维.mp4 |
│ │ │ 3-2 库存扣减(2)不能SQL1查询SQL2减除库存.mp4 |
│ │ │ 3-3 库存扣减(3)Java锁、悲观锁的解决方案探讨.mp4 |
│ │ │ 3-4 库存扣减(4)乐观锁的应用.mp4 |
│ │ │ 3-5 优惠券核销(1).mp4 |
│ │ │ 3-6 优惠券核销(2).mp4 |
│ │ │ 3-7 测试下单.mp4 |
│ │ │ 4-1 订单状态查询(1).mp4 |
│ │ │ 4-2 订单状态查询(2)订单支付过期状态的不可信.mp4 |
│ │ │ 4-3 订单状态查询(3)追加PlacedTime下单时间和ExpiredTime过期时间.mp4 |
│ │ │ 4-4 订单状态(4)查询待支付订单.mp4 |
│ │ │ 4-5 订单状态查询(5)订单状态查询与订单详情查询.mp4 |
│ │ │ |
│ │ ├─18.优惠券 、订单与支付系统 |
│ │ │ 1-1 优惠券系统设计分析.mp4 |
│ │ │ 1-2 Coupon优惠券实体设计.mp4 |
│ │ │ 1-3 带有实际业务意义的多对多的第三张表.mp4 |
│ │ │ 1-4 优惠券的适用范围限定.mp4 |
│ │ │ 1-5 有效期优惠券的设计思路.mp4 |
│ │ │ 1-6 多对多向一对多的转化思维-.mp4 |
│ │ │ 1-7 多级属性精简技巧.mp4 |
│ │ │ 2-1 根据分类查询所属优惠券接口分析.mp4 |
│ │ │ 2-2 原生SQL的多对多查询.mp4 |
│ │ │ 2-3 JPQL完成复杂的多表查询(1).mp4 |
│ │ │ 2-3 JPQL完成复杂的多表查询.mp4 |
│ │ │ 2-4 原生SQL语句剖析与JPQL的对比.mp4 |
│ │ │ 2-5 单表查询、Join与JPA的优势1.mp4 |
│ │ │ 2-6 查询全场券1.mp4 |
│ │ │ 3-1 超权问题.mp4 |
│ │ │ 3-2 LocalUser类的设计.mp4 |
│ │ │ 3-3 写入LocalUser.mp4 |
│ │ │ 3-4 ThreadLocal与线程安全.mp4 |
│ │ │ 3-5 ThreadLocal资源释放时机.mp4 |
│ │ │ 4-1 用户领取优惠券的细节考虑.mp4 |
│ │ │ 4-2 用户领取优惠券代码编写.mp4 |
│ │ │ 4-3 更新成功、删除成功、创建成功的HttpStatusCode值.mp4 |
│ │ │ 4-4 注意注入到容器里的对象是否是同一个对象.mp4 |
│ │ │ 4-5 异步机制下的数据一致性不一定能100%保证.mp4 |
│ │ │ 5-1 定时器的解决方案:主动轮询与被动消息触发.mp4 |
│ │ │ 5-2 枚举值向枚举类型转换.mp4 |
│ │ │ 5-3 不能以状态枚举来作为优惠券过期的唯一判断标准.mp4 |
│ │ │ 5-4 获取我可用的优惠券(带分类数据).mp4 |
│ │ │ 6-1 Order订单表的数据库设计.mp4 |
│ │ │ 6-10 订单校验(7)RoundingMode模式.mp4 |
│ │ │ 6-11 订单校验(8)SpringBoot默认注入单例模式所带来的额问题.mp4 |
│ │ │ 6-12 订单校验(9)非SpringBoot托管的Java对象-.mp4 |
│ │ │ 6-13 订单校验(10)prototype多例模式的注入方案(ObjectFactory与动态代理).mp4 |
│ │ │ 6-14 订单校验(11)价格校验收尾.mp4 |
│ │ │ 6-2 前端提交的Price是不可信的.mp4 |
│ │ │ 6-3 订单校验所需要考虑的若干种校验项.mp4 |
│ │ │ 6-4 订单校验(1)获取实时的Sku信息.mp4 |
│ │ │ 6-5 订单校验(2)构建CouponChecker.mp4 |
│ │ │ 6-6 订单校验(3)优惠券过期时间校验.mp4 |
│ │ │ 6-7 订单校验(4)满减券计算.mp4 |
│ │ │ 6-8 订单校验(5)浮点数价格运算利弊分析.mp4 |
│ │ │ 6-9 订单校验(6)银行家舍去算法.mp4 |
│ │ │ |
│ │ └─19.微信支付Redis与RocketMQ |
│ │ 1-1 微信支付流程分析.mp4 |
│ │ 1-2 订单过期时间的再次校验.mp4 |
│ │ 1-3 订单是否取消的逻辑判断.mp4 |
│ │ 1-4 微信支付配置类.mp4 |
│ │ 1-5 统一下单(预订单)接口参数解析.mp4 |
│ │ 1-6 统一下单的常用参数组装.mp4 |
│ │ 1-7 配置微信支付回调API地址.mp4 |
│ │ 1-8 更新订单的PrepayId.mp4 |
│ │ 1-9 微信支付签名计算.mp4 |
│ │ 2-1 微信支付回调结果WxNotify接收与处理.mp4 |
│ │ 2-2 从流中读取支付回调结果.mp4 |
│ │ 2-3 更新订单状态Unpaid转为Paid.mp4 |
│ │ 2-4 订单状态更新的加强判断逻辑.mp4 |
│ │ 2-5 微信支付测试.mp4 |
│ │ 3-1 延迟消息队列是什么?能解决什么问题?ev.mp4 |
│ │ 3-2 Redis的安装与测试ev.mp4 |
│ │ 3-3 Redis键空间通知(KeySpaceNotifyfication).mp4 |
│ │ 3-4 key-event通知订阅机制ev.mp4 |
│ │ 3-5 SpringBoot中的Redis配置ev.mp4 |
│ │ 3-6 将订单、优惠券信息写入Redisev.mp4 |
│ │ 4-1 订单取消与库存归还(1)-OrderMessageBO.mp4 |
│ │ 4-2 订单取消与库存归还(2)-RecoverStock.mp4 |
│ │ 4-3 订单取消(3)优惠券归还与事件广播机制.mp4 |
│ │ 4-4 4.8日周三SQL直播课预告.mp4 |
│ │ 5-1 常见消息队列.mp4 |
│ │ 5-10 消费者类与匿名类写法.mp4 |
│ │ 5-11 消费者消费与RocketMQ的优势.mp4 |
│ │ 5-2 订单过期状态的3种解决方案总结.mp4 |
│ │ 5-3 谈消息队列的应用场景.mp4 |
│ │ 5-4 启动RocketMQ的NameSrv和Broker.mp4 |
│ │ 5-5 生产者和消费者的简单测试.mp4 |
│ │ 5-6 RocketMQ延迟消息队列原理与延迟精度.mp4 |
│ │ 5-7 生产者实例化(上)ev.mp4 |
│ │ 5-8 生产者实例化(2)PostConstruct注解的理解和应用ev.mp4 |
│ │ 5-9 生产者实例化(3)发送消息.mp4 |
│ │ |
│ ├─阶段3:Java CMS后台管理系统-后端开发 |
│ │ ├─第20周 Lin CMS入门与MyBatis |
│ │ │ 1-1 为什么每个项目都需要CMSev.mp4 |
│ │ │ 1-2 CMS动态分配权限是最核心的能力ev.mp4 |
│ │ │ 1-3 优秀的Lin CMSev.mp4 |
│ │ │ 1-4 LinCMS的前后端分离ev.mp4 |
│ │ │ 1-5 下载Lin CMS SpringBoot的Sleeve版本ev.mp4 |
│ │ │ 2-1 Lin CMS是工程+SDK的开发框架ev.mp4 |
│ │ │ 2-2 导入LinCMS内置数据表ev.mp4 |
│ │ │ 2-3 自定义业务的目录组织结构ev.mp4 |
│ │ │ 2-4 LinCMSVue试运行与前后联调ev.mp4 |
│ │ │ 2-5 Lin CMS中的三种数据库机制JPA、MyBatis与MyBatisPlusev.mp4 |
│ │ │ 3-1 MyBatis的项目目录组织结构ev.mp4 |
│ │ │ 3-2 编写第一个MyBatis MapperXMLev.mp4 |
│ │ │ 3-3 Mapper接口与MapperXML的扫描位置ev.mp4 |
│ │ │ 3-4 调整代码目录ev.mp4 |
│ │ │ 3-5 MyBatis的Insertev.mp4 |
│ │ │ 3-6 MyBatis与JPA的对比ev.mp4 |
│ │ │ 3-7 MyBatis使用注解编写SQLev.mp4 |
│ │ │ |
│ │ ├─第21周 MyBatisPlus入门与进阶 |
│ │ │ 1-1 MyBatisPlus的BaseMapper(同JPA类似)ev.mp4 |
│ │ │ 1-2 前端功能预览与简介ev.mp4 |
│ │ │ 1-3 分页参数设置与LinCMS的自定义错误消息ev.mp4 |
│ │ │ 1-4 MyBatisPlus的ServiceImplev.mp4 |
│ │ │ 1-5 LinCMS的内置分页器ev.mp4 |
│ │ │ 2-1 @NotBlank与@Length注解配合使用ev.mp4 |
│ │ │ 2-2 Update更新Bannerev.mp4 |
│ │ │ 2-3 强大的LinCMS内置异常类剖析ev.mp4 |
│ │ │ 2-4 浅谈为什么你看不懂源码ev.mp4 |
│ │ │ 2-5 UnifyResponseVO的几种快捷返回对象ev.mp4 |
│ │ │ 2-6 LinCMS中的软删除与物理删除ev.mp4 |
│ │ │ 3-1 从UI交互谈程序员的综合素质ev.mp4 |
│ │ │ 3-2 连表查询的一种方案:单表查询ev.mp4 |
│ │ │ 3-3 MyBatisPlus的QueryWrapperev.mp4 |
│ │ │ 3-4 BO的作用于意义ev.mp4 |
│ │ │ 3-5 QueryWrapper的lambada写法ev.mp4 |
│ │ │ 3-6 灵活的LambadaQueryWrapperev.mp4 |
│ │ │ 4-1 LinCMS版本升级探讨ev.mp4 |
│ │ │ 4-2 升级到LinCMS Sleeve-0.2版本ev.mp4 |
│ │ │ 4-3 LinCMS 0.2版本概述ev.mp4 |
│ │ │ 4-4 CodeGenerator快速生成模板ev.mp4 |
│ │ │ 4-5 一对多关系的多表是否可复用探讨ev.mp4 |
│ │ │ 4-6 一对多的删除(级联删除)探讨ev.mp4 |
│ │ │ 4-7 Create新增数据ev.mp4 |
│ │ │ 5-1 图片资源与服务器交互全流程解析ev.mp4 |
│ │ │ 5-2 LinCMS文件上传系统解析ev.mp4 |
│ │ │ 5-3 LinCMS内置文件上传系统演示ev.mp4 |
│ │ │ |
│ │ ├─第22周 CMS权限、双令牌机制解析 |
│ │ │ 1-1 LinCMS权限系统要素ev.mp4 |
│ │ │ 1-2 LinCMS动态权限剖析 (1)ev.mp4 |
│ │ │ 1-3 LinCMS权限系统机制(2)ev.mp4 |
│ │ │ 1-4 LinCMS权限系统(3)接口的元数据信息ev.mp4 |
│ │ │ 1-5 LinCMS权限系统(4)分组权限GroupRequiredev.mp4 |
│ │ │ 1-6 谈字段级别的权限控制方案ev.mp4 |
│ │ │ 2-1 Web开发中的双令牌(accesstoken和refreshtoken)ev.mp4 |
│ │ │ 2-2 双令牌(actoken和retoken)机制全解析ev.mp4 |
│ │ │ 2-3 谈JWT令牌安全性的问题ev.mp4 |
│ │ │ 2-4 系统日志与行为日志机制解析ev.mp4 |
│ │ │ 3-1 商品管理操作需求分析ev.mp4 |
│ │ │ 3-10 MyBatis关联查询(6)Collection集合映射ev.mp4 |
│ │ │ 3-11 MyBatis关联复杂查询(7)自动映射ev.mp4 |
│ │ │ 3-2 商品详情数据查询思路分析ev.mp4 |
│ │ │ 3-3 MyBatis实体映射到DO的意义ev.mp4 |
│ │ │ 3-4 MyBatis的复杂多表查询分析ev.mp4 |
│ │ │ 3-5 Mybatis联表查询(1)ev.mp4 |
│ │ │ 3-6 MyBatis联表查询(2)带入参数与条件ev(1).mp4 |
│ │ │ 3-6 MyBatis联表查询(2)带入参数与条件ev.mp4 |
│ │ │ 3-7 MyBatis联表查询(3)ev(1).mp4 |
│ │ │ 3-7 MyBatis联表查询(3)ev.mp4 |
│ │ │ 3-8 MyBatis复杂联表查询(4)ResultMap的意义ev.mp4 |
│ │ │ 3-9 MyBatis复杂联查(5)混合1对1与1对多查询ev.mp4 |
│ │ │ |
│ │ └─第23周 MyBatisPlus高级技巧及结束语 |
│ │ 1-1 即时搜索的意义ev.mp4 |
│ │ 1-2 一行代码一个接口是如何实现的?ev.mp4 |
│ │ 1-3 MyBatis多对多查询技巧(1)ev.mp4 |
│ │ 1-4 MyBatis多对多表查询技巧(2)善于拆分多对多,简化查询ev.mp4 |
│ │ 1-5 MyBatis多对多查询(3)ev.mp4 |
│ │ 2-1 MyBatis插入复杂数据(1)分析SPU的录入难点ev.mp4 |
│ │ 2-2 MyBatis插入复杂数据(2)ev.mp4 |
│ │ 2-3 MyBatis插入复杂数据(3)基础校验与业务校验ev.mp4 |
│ │ 2-4 MyBatis复杂新增(4)ev.mp4 |
│ │ 2-5 MyBatis复杂新增(5)MBP的批量插入saveBatchev.mp4 |
│ │ 2-6 MyBatis复杂新增(6)测试批量插入ev.mp4 |
│ │ 2-7 MyBatis复杂新增(7)批量插入Spu详情数据ev.mp4 |
│ │ 2-8 MyBatis复杂新增(8)直接操作多对多中间表完成新增多对多ev.mp4 |
│ │ 2-9 三阶段尾声ev.mp4 |
│ │ |
│ └─阶段4:Vue 构建超好用CMS后台管理系统前端 |
│ ├─第24周 走进Vue3.0 |
│ │ 1-1 4阶段Vue3.0更新计划说明ev.mp4 |
│ │ 1-2 Vue3.0的变化综述ev.mp4 |
│ │ 1-3 Vue的一些必备基础与前端开发工程师的基本要求ev.mp4 |
│ │ 1-4 前端发展的4个阶段ev.mp4 |
│ │ 1-5 服务端渲染VS前端渲染ev.mp4 |
│ │ 2-1 下载Vue3.0的单文件核心库ev.mp4 |
│ │ 2-10 条件渲染之v-if和v-show的选择ev.mp4 |
│ │ 2-11 多项条件渲染ev.mp4 |
│ │ 2-12 v-for列表渲染及扩展用法和注意事项ev.mp4 |
│ │ 2-2 单文件的Vue与2.xVue的Options风格ev.mp4 |
│ │ 2-3 第一个Vue3.0的Demoev.mp4 |
│ │ 2-4 Vue3的初始模型小结ev.mp4 |
│ │ 2-5 第一个Vue的指令v-textev.mp4 |
│ │ 2-6 v-html指令ev.mp4 |
│ │ 2-7 v-bind指令用于绑定标签的属性ev.mp4 |
│ │ 2-8 带入JS表达式进行动态计算ev.mp4 |
│ │ 2-9 v-on指令监听事件ev.mp4 |
│ │ |
│ ├─第25周 Vue3.0中的响应式对象 |
│ │ 1-1 双向数据绑定ev.mp4 |
│ │ 1-2 Vue3.0的ref包装响应式对象ev.mp4 |
│ │ 1-3 双向数据绑定与响应式对象ev.mp4 |
│ │ 1-4 Vue3.0的响应式对象使用场景ev.mp4 |
│ │ 2-1 Vue3.0中的watch函数(1)ev.mp4 |
│ │ 2-2 Vue3中的watch函数(2)基础使用范例ev.mp4 |
│ │ 2-3 Vue3中watch函数(3)高级用法-监听reactive对象ev.mp4 |
│ │ 2-4 Vue3中的watch(4)监听reactive对象下的单个属性ev.mp4 |
│ │ 3-1 watch小结与引入computed技术属性ev.mp4 |
│ │ 3-2 computed函数的基本用法ev.mp4 |
│ │ 3-3 watch、computed和普通JS函数的场景和区别ev.mp4 |
│ │ 3-4 computed的set和get方法ev.mp4 |
│ │ |
│ ├─第26周 Vue3.0 中的组件 |
│ │ 1-1 Vue3.0中的组件如何编写?ev.mp4 |
│ │ 1-2 Vue4.xCli创建Vue3项目或者使用Vite创建Vue3项目ev.mp4 |
│ │ 1-3 一切皆组件ev.mp4 |
│ │ 1-4 VueCli应用程序目录结构解析ev.mp4 |
│ │ 1-5 Vue里自定义组件的定义与引入ev.mp4 |
│ │ 2-1 导入resetcss并显示一张图片ev.mp4 |
│ │ 2-2 我的第一个Vue3.0自定义组件ev.mp4 |
│ │ 2-3 Vue组建的一些命名规范参考ev.mp4 |
│ │ 2-4 如何显示一张assets目录中的图片?ev.mp4 |
│ │ 2-5 使用require加载图片ev.mp4 |
│ │ 2-6 Vue3 setup函数在组件中的使用ev.mp4 |
│ │ 2-7 props属性传值时需要注意使用v-bind指令确定类型ev.mp4 |
│ │ 3-1 vue的单向数据流特性ev.mp4 |
│ │ 3-2 父组件改变导致子组件的变化ev.mp4 |
│ │ 3-3 引用类型的修改导致父组件异常ev.mp4 |
│ │ |
│ ├─第27周 vue-router与vuex |
│ │ 1-1 自定义组件监听原生事件ev.mp4 |
│ │ 1-2 自定义组件的自定义事件与传参ev.mp4 |
│ │ 1-3 认识前端路由的意义ev.mp4 |
│ │ 1-4 初识Vue3.0的Routerev.mp4 |
│ │ 1-5 自己定义一个detail页面路由ev.mp4 |
│ │ 2-1 router-view与router-linkev.mp4 |
│ │ 2-2 vue-router编程思想(1)ev.mp4 |
│ │ 2-3 vue-router编程思想(2)入口组件的规范ev.mp4 |
│ │ 2-4 vue-router编程思想(3)router-view监听事件ev.mp4 |
│ │ 2-5 vue-router编程思想(4)组件的切换优先考虑路由而不是条件渲染ev.mp4 |
│ │ 2-6 默认情况下不能跨父组件通信ev.mp4 |
│ │ 3-1 嵌套路由(1)ev.mp4 |
│ │ 3-2 嵌套路由(2)ev.mp4 |
│ │ 3-3 多页面跳转change-viewev.mp4 |
│ │ 3-4 Vue3中如何获取路由参数ev.mp4 |
│ │ 3-5 Vue3中的路由名称与统一跳转页面逻辑ev.mp4 |
│ │ 4-1 为什么需要Vuex全局状态管理ev.mp4 |
│ │ 4-2 定义Vuex的全局变量ev.mp4 |
│ │ 4-3 Vuex改变全局状态变量并传参的3种方式ev.mp4 |
│ │ 4-4 计算属性和监听器在Vuex状态改变时的应用ev.mp4 |
│ │ 4-5 利用全局状态管理变量进行路由切换ev.mp4 |
│ │ |
│ ├─第28周 动态组件与Vuex全局状态管理 |
│ │ 1-1 动态组件(1)总结Vue中几种切换视图组件的方案ev.mp4 |
│ │ 1-2 动态组件(2)初识动态组件ev.mp4 |
│ │ 1-3 使用keep-alive缓存组件状态ev.mp4 |
│ │ 2-1 为什么需要Vuex全局状态管理ev.mp4 |
│ │ 2-2 定义Vuex的全局变量ev.mp4 |
│ │ 2-3 Vuex改变全局状态变量并传参的3种方式ev.mp4 |
│ │ 2-4 计算属性和监听器在Vuex状态改变时的应用ev.mp4 |
│ │ 2-5 利用全局状态管理变量进行路由切换ev.mp4 |
│ │ |
│ ├─第29周 CMS电商管理系统前端搭建 |
│ │ 1-1 实战LinCMSVue介绍ev.mp4 |
│ │ 1-2 实战的准备工作ev.mp4 |
│ │ 1-3 下载LinCMSVue并前后端运行联调ev.mp4 |
│ │ 1-4 权限、角色与分组的关系ev.mp4 |
│ │ 1-5 字段级别的细粒度权限探讨ev.mp4 |
│ │ 2-1 舞台、导航栏、状态栏与reuse-tabev.mp4 |
│ │ 2-2 LinCMS内置前端菜单与路由配置基础ev.mp4 |
│ │ 2-3 LinCMS舞台的搭建与配置ev.mp4 |
│ │ 2-4 LinCMS的一些重要全局配置ev.mp4 |
│ │ 3-1 第一个舞台的开发-Banner舞台ev.mp4 |
│ │ 3-10 el表格的悬浮ToolTip与一些设计原则ev.mp4 |
│ │ 3-2 第一个elementui的组件-table组件的应用ev.mp4 |
│ │ 3-3 Table组件的基本属性介绍ev.mp4 |
│ │ 3-4 Vue中的业务模型Model的应用ev.mp4 |
│ │ 3-5 使用LinCMSVue内置的axios请求API接口ev.mp4 |
│ │ 3-6 自定义表格列的内容-显示图片ev.mp4 |
│ │ 3-7 CSS预处理语言SCSS、LESS介绍ev.mp4 |
│ │ 3-8 引用LinCMSVue内置的主题色变量ev.mp4 |
│ │ 3-9 表格如何做才好看?ev.mp4 |
│ │ 4-1 Banner详情页面的跳转ev.mp4 |
│ │ 4-2 el的form表达与input输入ev.mp4 |
│ │ 4-3 返回图标的制作与细节处理ev.mp4 |
│ │ 4-4 通过自定义事件实现返回ev.mp4 |
│ │ 4-5 v-permisson指令进行前端权限控制ev.mp4 |
│ │ 4-6 Vue组件的属性与获取BannerIDev.mp4 |
│ │ 4-7 在Form表单中展示服务器数据ev.mp4 |
│ │ 4-8 获取Form表单修改后的数据ev.mp4 |
│ │ |
│ └─第30周 三端联调,全栈最后一公里。 |
│ 1-1~2.6.mp4 |
-
朋友圈不定时发福利(开通会员免费获取资源)
-
微信号
wqxzvip
点击我自动复制
© 版权声明
本站所有资源均来自互联网收集, 本站大数据爬虫负责收集不承担任何版权问题。所有资源均不出售,只免费分享给本站等级用户!如有内容侵犯到任何版权问题, 请发送版权相关证明与本站客服,一经核实将及时予与删除并致以最深的歉意。
THE END
暂无评论内容