慕课网高并发秒杀API之业务分析与DAO层

项目基于SpringMVC+Spring+MyBatis实现高并发秒杀API

课程主要内容

SpringMVC+Spring+MyBatis使用与整合

秒杀类系统需求理解和实现

常用技术解决高并发问题(java web 以及前端这些常用的技术)


秒杀业务场景具有典型“事务”特性

秒杀/红包类需求越来越常见

面试常问问题


可以从课程中学到什么?

框架的使用与整合技巧

秒杀分析过程和优化思路


相关技术介绍

MySQL(表设计,SQL技巧,事务和行级锁)

MyBatis(Dao层设计与开发,MyBatis合理使用,MyBatis与Spring的整合)

Spring(Spring IOC整合Service,声明式事务运用)

SpringMVC(Restful接口设计和使用,框架运作流程,Controller开发技巧)

前端(交互设计,Bootstrap,jQuery)

高并发(高并发点和高并发分析,优化思路并实现)


基于Maven创建项目

官方配置文件地址

慕课网高并发秒杀API之业务分析与DAO层


秒杀业务分析

秒杀系统业务流程

慕课网高并发秒杀API之业务分析与DAO层

秒杀业务的核心 -> 库存的处理

慕课网高并发秒杀API之业务分析与DAO层

什么是购买行为

慕课网高并发秒杀API之业务分析与DAO层

MySQL实现秒杀难点分析

难点问题-“竞争”

MySQL(涉及到的技术有事务和行级锁)

秒杀的难点是如何去高效的处理竞争?


实现秒杀的哪些功能?

秒杀接口暴露

执行秒杀

相关查询


数据库设计和编码

DAO层实体和接口编码

 

基于MyBatis实现DAO


MyBatis整合Spring

整合目标

更少的编码

更少的配置

足够的灵活性

整合过程

1 配置数据库相关参数
2 数据库连接池:配置连接池属性 c3p0连接池的私有属性 关闭理解后不自动commit 获取连接超时时间 当获取连接失败重试次数
3 配置sqlsessionfactory对象:<bean> 注入数据库连接池 配置mybatis全局配置文件 扫描entity包使用别名 扫描sql配置文件 
4 配置扫描dao接口包,动态实现dao接口,注入到spring容器中:注入sqlsessionfactory 给出需要扫描dao接口包