基于Spring+SpringMVC+MyBatis實作高并發秒殺API
1.網際網路公司常用架構
2.架構易于使用和輕量級
3.低代碼傾入性
4.成熟的社群和使用者群
MySQL:1.表設計2.SQL技巧3.事務和行級鎖
MyBatis:1.DAO層的設計和開發2.MyBatis合理使用3.MyBatis和Spring的整合和使用
Spring:1.Spring IOC整合Service2.聲明式事務
SpringMVC:1.Restful接口設計和使用技巧2.架構運作流程3.Controller開發技巧
前端:1.互動設計2.Bootstrap3.JQuery
高并發:1.高并發點和高并發分析2.優化思路并實作
1.使用maven建立項目:mvn archetype:generate -DgroupId=org.seckill -DartifactId=seckill -DarchetypeArtifactId=maven-archetype-webapp
-DinteractiveMode=false -DarchetypeCatalog=internal
也可以使用mvn archetype:generate指令根據提示建立項目。
2.使用Eclipse導入項目
3.修改web.xml檔案schema,使用servlet4.0版本,預設2.3版本EL表達式不工作。
4.補全目錄
5.補全pom.xml,導入相關依賴
部分說明:
1.Java日志:slf4j,log4j,logback,common-logging等等(commons-logging
和 slf4j 都是日志規範/接口,差別是slf4j在加載時尋找接口的實作,而 commons-logging 在運作時尋找接口的實作)
slf4j是規範/接口,log4j,logback,common-logging是日志實作
這裡使用slf4j+logback
2.c3p0資料庫連接配接池
pom.xml
MySQL等關系型資料庫提供的事務機制是目前可靠的資料落地方案
1.秒殺接口暴露
2.執行秒殺
3.相關的查詢
一、DAO層設計和編碼
1.資料庫表設計 2.DAO的接口 3.MyBatis實作DAO
二、Service設計編碼
1.Service層設計以及編碼實作 2.通過Spring管理Service,通過聲明式事務标注事務操作(通過Spring聲明式事務簡化事務控制)
三、web設計
1.RESTful接口設計 2.前端互動
四、優化項目
未完……