項目基於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創建項目
官方配置文件地址
秒殺業務分析
秒殺系統業務流程
秒殺業務的核心 -> 庫存的處理
什麼是購買行爲
MySQL實現秒殺難點分析
難點問題-“競爭”
MySQL(涉及到的技術有事務和行級鎖)
秒殺的難點是如何去高效的處理競爭?
實現秒殺的哪些功能?
秒殺接口暴露
執行秒殺
相關查詢
數據庫設計和編碼
DAO層實體和接口編碼
基於MyBatis實現DAO
MyBatis整合Spring
整合目標
更少的編碼
更少的配置
足夠的靈活性
整合過程
1 配置數據庫相關參數
2 數據庫連接池:配置連接池屬性 c3p0連接池的私有屬性 關閉理解後不自動commit 獲取連接超時時間 當獲取連接失敗重試次數
3 配置sqlsessionfactory對象:<bean> 注入數據庫連接池 配置mybatis全局配置文件 掃描entity包使用別名 掃描sql配置文件
4 配置掃描dao接口包,動態實現dao接口,注入到spring容器中:注入sqlsessionfactory 給出需要掃描dao接口包