介紹
本筆記針對的是課程【從0開始 獨立完成企業(yè)級Java電商網(wǎng)站開發(fā)(服務端)】學習后的記錄。
課程特點
1、學習成本低:前后端徹底分離,按需學習前端和后端,讓你更專注自己需要的技術
2、上手速度快:手把手,由淺入深,步步為營,新手上手速度快
3、經(jīng)驗技巧多:各種踩坑分享,各種貼心插件,各種開發(fā)技巧,倍增開發(fā)效率與準確性
4、雙平臺搭建:Linux,windows環(huán)境搭建與配置,免去環(huán)境搭建煩惱
5、支付更自由:個人輕松接入支付寶,無需企業(yè)資質
6、發(fā)布自動化:自動化腳本發(fā)布,nginx運維,適合新手的高質量上線作品
項目功能與技術要點
大型電商網(wǎng)站的開發(fā)流程

項目模塊:
1、用戶模塊
橫向越權、縱向越權、MD5明文加密、guava緩存
高復用服務響應對象的設計思想和封裝
2、分類模塊
遞歸算法
復雜對象排重
無限層級樹結構設計
3、商品模塊
POJO、BO、VO抽象模型
高效分頁及動態(tài)排序
FTP服務對接、富文本上傳
4、購物車模塊
商品總價計算復用封裝
高復用的邏輯方法封裝思想
解決商業(yè)運算丟失精度的坑
5、訂單模塊
安全漏洞解決方案
訂單號生成規(guī)則
強大的常量、枚舉設計
6、收貨地址
同步獲取自增主鍵
數(shù)據(jù)綁定的對象綁定
越權問題升級鞏固
7、支付模塊
支付寶SDK源碼解析
支付寶支付流程與集成
二維碼生成,掃碼支付
8、線上部署
云服務器vsftpd、nginx等配置
云服務器的配置與域名解析
發(fā)布上線注意事項
項目效果演示及資料下載
前臺:
http://www.happymmall.com/index.html
http://test.happymmall.com/

后臺:
http://admin.happymmall.com 賬號密碼 admin/admin
http://admintest.happymmall.com/ 賬號密碼 admin/admin

學習資料與軟件下載:http://learning.happymmall.com/

目錄
第1章 學習指南

1-1 課程導學
1-2 課程學習與解決問題指南(最重要的一節(jié)課)
1-3 大型Java項目架構演進解析
1-4 項目功能與業(yè)務邏輯介紹
1-5 課程安排與學習收獲
第2章 linux系統(tǒng)下開發(fā)環(huán)境安裝與配置指導
考慮到學習這門課程的同學的電腦系統(tǒng)可能是linux的,為了降低大家在搭建環(huán)境的難度和需要避免的坑,本章將手把手領大家在linux環(huán)境下安裝開發(fā)環(huán)境,如:jdk、tomcat、maven、vsftpd、nginx、文件服務器、mysql、git安裝、配置驗證。在這章中可以學到linux權限、linux服務、ftp服務器的搭建,nginx反向代理域名解析的配置...
2-1 linux軟件源配置與學習建議
2-2 linux軟件源配置實操
2-3 jdk安裝講解(選看)
2-4 jdk安裝實操(linux系統(tǒng)同學看這節(jié))
2-5 tomcat安裝講解(選看)
2-6 tomcat安裝實操(linux系統(tǒng)同學看這節(jié))
2-7 maven項目構建與管理工具安裝講解(選看)
2-8 maven項目構建與管理工具安裝實操(linux系統(tǒng)同學看這節(jié))
2-9 vsftpd文件服務器安裝與配置講解(選看)
2-10 vsftpd文件服務器安裝與配置實操(linux系統(tǒng)同學看這節(jié))
2-11 nginx反向代理服務器安裝與配置講解(選看)
2-12 nginx反向代理服務器安裝與配置實操(linux系統(tǒng)同學看這節(jié))
2-13 nginx反向代理服務器域名解析配置實操(linux系統(tǒng)同學看這節(jié))
2-14 nginx反向代理服務器域名解析配置細節(jié)補充-autoindex(解決2-19小節(jié)403問題)
2-15 文件服務器搭建及原理講解
2-16 mysql數(shù)據(jù)庫安裝與配置講解(選看)
2-17 mysql數(shù)據(jù)庫安裝與配置實操(linux系統(tǒng)同學看這節(jié))
2-18 git版本控制工具安裝與配置講解(選看)
2-19 git版本控制工具安裝與配置實操(linux系統(tǒng)同學看這節(jié))
第3章 windows系統(tǒng)下開發(fā)環(huán)境安裝與配置指導
考慮到學習這門課程的同學的電腦系統(tǒng)可能是Windows的,為了降低大家在搭建環(huán)境的難度和需要避免的坑,本章將手把手領大家在windows環(huán)境下安裝開發(fā)環(huán)境,如:jdk、tomcat、maven、vsftpd、nginx、文件服務器、mysql、git安裝、配置驗證。在這章中可以學到linux權限、linux服務、ftp服務器的搭建,nginx反向代理域名解析的配置...
3-1 jdk安裝與配置實操(windows)
3-2 tomcat安裝與配置實操(windows)
3-3 maven項目構建與管理工具安裝與配置實操(windows)
3-4 ftpserver文件服務器安裝與配置實操(windows)
3-5 nginx反向代理服務器安裝與配置講解
3-6 nginx反向代理服務器安裝與配置實操(windows)
3-7 nginx反向代理服務器域名解析配置實操(windows)
3-8 nginx反向代理服務器域名解析配置細節(jié)補充-autoindex(linux_windows)
3-9 文件服務器搭建及原理講解
3-10 mysql數(shù)據(jù)庫安裝與配置講解
3-11 mysql數(shù)據(jù)庫安裝與配置實操(windows)
3-12 git版本控制工具安裝與配置講解
3-13 git版本控制工具安裝與配置實操(windows)
第4章 數(shù)據(jù)表結構設計(表結構,表關系,索引,時間戳)
本章將詳細講解我們課程中所使用的數(shù)據(jù)表結構,表關系,索引,時間戳,帶著大家認識高精度字段類型,富文本字段類型,會重點講我們本次課程在設計數(shù)據(jù)表的思路和思想,同時會和大家分享在數(shù)據(jù)表設計中有哪一些經(jīng)驗、技巧和注意的點。...
4-1 數(shù)據(jù)表結構設計
4-2 數(shù)據(jù)表關系設計
4-3 數(shù)據(jù)表索引與時間戳講解
第5章 項目初始化
本章將手把手領大家初始化數(shù)據(jù)庫,安裝idea、配置jdk、tomcat、maven并通過archetype創(chuàng)建web項目,講解maven的pom文件配置,使用git對初始化代碼提交。使用mybatis-generator、mybatis-plugin、mybatis-pagehelper,并生成我們項目所需的dao層代碼文件。對spring官方demo進行指引。并詳細講解spring、springmvc、logback...
5-1 項目初始化概要
5-2 數(shù)據(jù)庫初始化
5-3 idea項目開發(fā)工具安裝實操(mac)
5-4 idea項目開發(fā)工具安裝實操(windows)
5-5 jdk、tomcat、maven配置及初始化web空白項目
5-6 git初始化
5-7 maven的pom文件配置
5-8 項目包結構初始化
5-9 mybatis三劍客之mybatis-generator配置
5-10 mybatis三劍客之mybatis-generator生成數(shù)據(jù)對象和時間戳優(yōu)化
5-11 mybatis三劍客之mybatis-plugin講解
5-12 mybatis三劍客之mybatis-pagehelper分頁插件講解
5-13 spring官方demo指引及配置
5-14 spring、springmvc配置實操
5-15 logback配置講解
5-16 ftp服務器配置講解
5-17 idea的注入和自動編譯配置
5-18 項目初始化代碼提交
5-19 兩個提高工作效率的神器-Restlet Client和fe助手
第6章 用戶模塊開發(fā)
本章將帶大家完成用戶模塊功能的開發(fā)并結合實際案例講解如何避免橫向越權、縱向越權安全漏洞。MD5明文加密和增加salt值。guava緩存的使用,高復用服務響應對象的設計思想及抽象封裝。mybatis-plugin的使用技巧。
6-1 用戶模塊開發(fā)概要與接口設計講解
6-2 登錄功能開發(fā)
6-3 登出,注冊,校驗功能開發(fā)
6-4 獲取用戶登錄信息,忘記密碼,提示問題與答案,重置密碼功能開發(fā)
6-5 忘記密碼中的重置密碼功能開發(fā)
6-6 登錄狀態(tài)下重置密碼功能開發(fā)
6-7 更新用戶個人信息功能開發(fā)
6-8 獲取用戶詳細信息功能開發(fā)及MD5加密補充
6-9 用戶模塊所有功能自測試
第7章 分類管理模塊開發(fā)
本章將帶大家完成分類管理模塊功能的開發(fā),并講解遞歸分類,并且支持分類無限層級樹狀結構,通過分類對象的排重講解重寫hashcode方法和equal方法的重要性。
7-1 分類管理模塊開發(fā)概要與接口設計講解
7-2 添加分類和更新分類名字功能開發(fā)
7-3 查詢節(jié)點和遞歸查找功能開發(fā)
7-4 分類管理模塊所有功能自測
第8章 商品管理模塊開發(fā)
本章我們一起完成商品模塊的開發(fā),完成后臺商品的創(chuàng)建、富文本的處理,前臺產(chǎn)品的搜索、列表、詳情。手把手領著大家對接FTP服務器,編寫springmvc文件上傳,使用文件流讀取properties文件,詳細講解抽象POJO、BO、VO對象之間的轉換關系及解決思路,joda-time快速入門,Mybatis對where語句動態(tài)拼裝的幾個版本演變 ,Mybatis...
8-1 商品管理模塊開發(fā)概要與接口設計講解
8-2 后臺商品新增,保存,更新,上下架功能開發(fā)
8-3 后臺獲取商品詳情功能開發(fā)及PropertiesUtil配置工具,DateTimeUtil時間處理工具開發(fā)
8-4 后臺商品列表動態(tài)分頁功能開發(fā)
8-5 后臺商品搜索功能開發(fā)
8-6 后臺商品圖片的springmvc上傳與富文本上傳ftp服務器功能開發(fā)1
8-7 后臺商品圖片的springmvc上傳與富文本上傳ftp服務器功能開發(fā)2
8-8 前臺商品詳情,列表,搜索,動態(tài)排序功能開發(fā)
8-9 商品管理模塊所有功能自測
第9章 購物車模塊開發(fā)
本章我們一起完成購物車模塊的開發(fā),一起封裝購物車高復用的核心方法并解決浮點型在商業(yè)運算中丟失精度的問題,并針對幾個不同的case詳細講解,同時就Bigdecimal源碼進行講解。
9-1 購物車模塊開發(fā)概要與接口設計講解
9-2 加入購物車功能開發(fā)1
9-3 加入購物車功能開發(fā)2
9-4 更新,刪除購物車商品功能開發(fā)
9-5 全選,全反選,單選,單反選,查詢購物車商品數(shù)量功能開發(fā)
9-6 購物車模塊所有功能自測
第10章 收貨地址管理模塊開發(fā)
本章將帶大家一起完成收貨地址是增刪改查的功能,同時會講解到SpringMVC數(shù)據(jù)綁定中的對象綁定,對mybatis自動生成主鍵的處理,進行配置和使用的講解。并進一步鞏固橫向越權漏洞
10-1 收貨地址管理模塊開發(fā)概要與接口設計講解
10-2 收貨地址增,刪,改,查,分頁列表,地址詳情功能開發(fā)
10-3 收獲地址管理模塊所有功能自測
第11章 支付模塊開發(fā)
本章將帶大家完成支付模塊的開發(fā),同時會講解支付寶對接的核心文檔,支付寶的配置,并調通支付寶官方demo,解析支付寶SDK源碼,生成二維碼并持久化到圖片服務器,手把手把支付寶集成到我們的項目當中。并分享外網(wǎng)穿透和遠程調試對接的技巧。...
11-1 支付模塊開發(fā)概要與接口設計講解
11-2 支付寶支付功能對接要點講解(知識點補充)
11-3 支付寶支付功能重要文檔簡介(知識點補充)
11-4 支付寶支付功能官方Demo調試實操1(知識點補充)
11-5 支付寶支付功能官方Demo調試實操2(知識點補充)
11-6 支付寶支付功能開發(fā)1
11-7 支付寶支付功能開發(fā)2
11-8 支付寶支付回調函數(shù)實現(xiàn)與支付寶SDK源碼解析
11-9 查詢訂單支付狀態(tài)功能開發(fā)
11-10 支付模塊所有功能自測
第12章 訂單管理模塊開發(fā)
本章將帶大家一起完成訂單的信息填寫,訂單生成,和商品模塊、購物車模塊、用戶模塊的關聯(lián)關系。讓大家學習到如何為接下來要做的支付預留擴展性的思路。如何避免業(yè)務邏輯中容易發(fā)生的橫向越權和縱向越權等安全漏洞。?同時引出如何可以避免未來在SOA架構中容易引起故障的枚舉引起的坑。并帶著大家設計出實用、安全、擴展性...
12-1 訂單模塊開發(fā)概要及接口設計講解
12-2 創(chuàng)建訂單,清空購物車等功能開發(fā)1
12-3 創(chuàng)建訂單,清空購物車等功能開發(fā)2
12-4 取消訂單,獲取購物車中商品信息功能開發(fā)
12-5 前后臺訂單列表,訂單詳情,發(fā)貨功能開發(fā)
12-6 訂單管理模塊所有功能自測
第13章 云服務器線上部署與自動化發(fā)布,驗證,故障排查與解決
本章我會教大家把我們之前開發(fā)完成的代碼發(fā)布到線上,包含阿里云的玩法,線上服務器的配置、線上域名的解析、線上vsftpd、nginx等等配置、線上基于shell的發(fā)布腳本的開發(fā),線上環(huán)境的驗證,故障排查與解決等內容,讓我們的開發(fā)結果跑在真實的生產(chǎn)環(huán)境。讓你輕松+愉快地把自己的項目發(fā)布到線上可供隨時訪問。...
13-1 云服務器部署概要講解
13-2 云服務器購買、管理、配置實操
13-3 線上域名購買、解析講解
13-4 線上云服務器用戶創(chuàng)建實操
13-5 線上環(huán)境安裝配置實操(jdk-tomcat-maven-vsftpd-nginx)
13-6 線上環(huán)境安裝配置實操(mysql)
13-7 線上環(huán)境安裝配置實操(git)
13-8 線上防火墻配置實操
13-9 服務端項目自動化發(fā)布、驗證、故障排查與解決
第14章 回顧
14-1 課程回顧與下期展望
第15章 二期課程
15-1 二期課程導學
15-2 一期二期課程使用的系統(tǒng)及技術版本介紹
15-3 二期項目初始化
15-4 Redis分布式鎖原理解析
15-5 Spring Schedule+Redis分布式鎖構建分布式任務調度概述
15-6 分布式鎖編寫及調試分析
15-7 Tomcat集群快速入門:Nginx負載均衡配置,常用策略,場景及特點
15-8 Tomcat集群快速入門: Nginx+Tomcat搭建集群(linux,mac,windows)
15-9 Tomcat和Ng配置回顧(linux,mac,windows)
15-10 Tomcat集群實戰(zhàn)-1(linux,mac)
15-11 Tomcat集群實戰(zhàn)-2(linux,mac)
15-12 Tomcat集群實戰(zhàn)-3(windows)
15-13 Tomcat集群總結
第16章 前端課程
16-1 課程導學
16-2 電商平臺需求分析
16-3 架構設計及技術選型
16-4 前后端配合方式及數(shù)據(jù)接口定義
16-5 開發(fā)環(huán)境的搭建
16-6 nodejs和npm的介紹與安裝(mac,windows)
16-7 git的安裝和配置
16-8 sublime使用技巧
16-9 chrome調試工具
16-10 代理神器Charles&Fiddler
16-11 本章知識點總結
第17章 設計模式課程
17-1 課程導學
17-2 UML類圖講解-自上而下
17-3 UML類圖講解-對比講解聯(lián)想記憶
17-4 依賴倒置原則講解+coding
17-5 單例設計模式-DoubleCheck雙重檢查實戰(zhàn)及原理解析
17-6 單例設計模式-反射攻擊解決方案及原理分析
17-7 裝飾者模式講解
17-8 裝飾者模式coding
17-9 裝飾者模式源碼解析(spring-session mybatis jdk servlet)
環(huán)境參數(shù)
操作系統(tǒng) CentOS 6.8 64位、Windows7 64位
jdk版本 7u80 64位
git版本 2.8.0
Maven版本 3.0.5
MySQL版本 mysql-server-5.1.73
Nginx版本 nginx-1.10.2.tar.gz
vsftpd版本 vsftpd-2.2.2-21.el6.x86_64
開發(fā)工具及版本 dea 15.0.6
技術棧 SSM/Guava/Jackson/Joda/注解
開發(fā)語言 Java
電腦配置要求 電腦配置沒有特殊要求,保證Centos虛擬機流暢運行即可
參考:
https://coding.imooc.com/class/421.html
https://www.imooc.com/t/2705746
https://blog.csdn.net/hzzhengyx/article/details/84203474
https://my.oschina.net/u/3646576/blog/1512539
https://blog.csdn.net/zc_2016/article/details/88747010
https://blog.csdn.net/w8253497062015/article/details/88382183