豆腐小店是本身的學習項目,主要實現一個商城的下單、購物車、支付等基本功能,熟悉後端的開發過程,由於本身作Android的,而後想學一些後端的技術,因此Android端和後端(Springboot,Mybatis)一塊兒寫了。Android使用基本的MVC模式,儘量的寫得簡單,由於主要仍是學習後端,後端使用流行的SpringBoot+Mybatis框架,設計一個可擴展分佈式架構。html
Android端代碼:github.com/luqinmao/st…前端
Java後端代碼:github.com/luqinmao/st…java
storeClient安卓端git
技術 | 說明 |
---|---|
okgo | 優秀的網絡請求框架 |
autosize | 屏幕適配解決方案 |
rxpermissions | 動態權限框架 |
alipaySdk | 支付寶支付SDK |
其餘 | 如:butterknife、gson、oss、eventbus、BaseRecyclerViewAdapterHelper等 |
storeServer後端github
技術 | 說明 |
---|---|
SpringBoot | 容器+MVC框架 |
MyBatis | ORM框架 |
MyBatisGenerator | 數據層代碼生成 |
PageHelper | MyBatis物理分頁插件 |
Redis | 分佈式緩存 |
Druid | 數據庫鏈接池 |
OSS | 阿里雲對象存儲 |
Lombok | 簡化對象封裝工具 |
本項目啓動須要依賴MySql、Redis、navicat內網穿透等服務,數據庫中須要導入store.sql腳本,Android端下單支付時使用沙箱版支付寶APP進行付款。安裝完相關依賴之後直接啓動StoreApplication類的main函數便可。sql
src
├── common -- 用於存儲通用代碼及工具類
├── config -- SpringBoot中的Java配置
├── controller -- 控制器層代碼
| ├── backend -- 後臺管理接口
| └── common -- 通用未分類接口
| └── portal -- Android前端接口
├── dao -- 數據訪問層代碼
├── pojo -- 實體類
├── mbg -- MyBatisGenerator生成器相關代碼
└── service -- 業務層接口代碼
| └── impl -- 業務層接口實現類代碼
├── task -- 計時器相關代碼
├── util -- 工具類
├── task -- 計時器相關代碼
└── vo --
複製代碼
├── generatorConfig.xml -- MyBatisGenerator生成代碼規則配置
├── application.yml -- SpringBoot的配置文件
├── logback.xml -- logback日誌配置文件
├── store.properties -- 項目的Redis、內網穿透等須要的參數文件
├── zfbinfo.properties -- 支付寶須要的配置參數文件
└── generatorConfig.xml -- MyBatisGenerator生成代碼規則配置
複製代碼
由於我沒有支付寶企業帳號,因此項目使用的支付寶支付爲沙盒環境(測試環境),因此在安卓端試用支付功能時只能用沙箱版支付寶APP進行支付,須要在手機安裝沙箱版支付寶APP,請自行下載安裝,下載地址:openhome.alipay.com/platform/ap… 買家測試帳號:aemkne6182@sandbox.com 密碼:111111數據庫
啓動後端項目以前須要先啓動Redis,否則會報錯啓動不了後端
數據庫文件放在doc文件夾下面,即store.sql文件api
Android端的運行時候根據你運行在手機仍是模擬器,須要求改base文件夾下AppConst文件的SERVER_ADDRESS請求地址緩存
請求接口須要帶上請求頭login_token,值從登錄接口得到,用戶測試帳號:admin,密碼:admin
portal模塊的controller類,不須要登陸攔截的uri配置在LoginPublicUri類裏面
backend模塊的controller類,登陸與用戶管理員權限攔截在AuthorityInterceptor裏面
本項目學習參考了:coding.imooc.com/class/chapt…
由於本人能力有限,項目代碼還存在許多不足與很差的代碼,請見諒。
war包 javax/el/ELManager錯誤解決:錯誤緣由是由於tomcat7中的el-api2.2 版本過低致使
解決方法一:直接下載一個el-api3.x.jar替換tomcat中的el-api2.2.jar
解決方法二,直接下載tomcat8安裝解決問題
過濾器匹配:
- 匹配com.lqm.controller包下的全部方法 @Pointcut("execution(public * com.lqm.controller..(..))")
- 匹配com.lqm.controller包及其子包下的全部方法 @Pointcut("execution(* com.lqm.controller...(..))")
jackson config不生效記錄:以前AuthorityInterceptorConfig 我繼承WebMvcConfigurationSupport, 而後jackson config 的就失效了,把以前AuthorityInterceptorConfig改成 implements WebMvcConfigurer 就能夠了
orderControler報錯, Caused by: java.lang.NoClassDefFoundError: com/alipay/api/AlipayApiException
解決:blog.csdn.net/huanjia_h/a… war 加入alipay相關jar包
啓動報錯: Error creating bean with name 'gsonBuilder' 更換gson版本爲2.6.2 後解決