優化商品型別的方案

2021-09-25 19:12:53 字數 2710 閱讀 8573

一、優化商品型別的方案選擇

1.後台管理-redis快取

2.**主頁-頁面靜態化

二、為什麼要對商品型別進行優化(面試)

三、**實現

1.搭建公共的服務模組

2.測試 - eureka中有服務

四、redis公共服務

1.新增redis的依賴

2.匯入redis的工具類

3.完成redis的訪問值的介面

@restcontroller

public class rediscontroller implements redisclient catch (exception e)

}/**

* 獲取快取資料

* @param key

* @return

*/public ajaxresult get(@requestparam("key")string key) catch (exception e)

}4.完成feign的客戶端介面

(1)新增openfeign的依賴

(2)寫客戶端介面和返回托底資料的factory

@feignclient(value = 「common-service」,fallbackfactory = redisfallbackfactory.class)

public inte***ce redisclient

@override

public ajaxresult get(string key)

};}

5.在商品服務中 (查詢商品列表的介面中做更改)

(1)先從快取中查詢

(2)如果沒有,在查詢資料庫,同步到快取中

(3)返回資料

@override

public list loadtypetree()

//返回資料

return producttypes;

}6.測試,修改bug

(1)呼叫公共介面400錯誤,請求頭太長

(2)在公共服務中配置tomcat請求頭的大小–自己查

五、**主頁面靜態化

1.準備模板

執行專案-搭建乙個前端伺服器

npm install -g live-server

live-server --port=8081

2.編寫公共的頁面靜態化的介面

(1)新增velocity的依賴

(2)匯入工具包

(3)寫介面

(4)寫feign的客戶端

3.寫乙個介面(本身這個介面需要後台管理頁面的乙個按鈕來呼叫),我們直接通過postman來呼叫

/***/

@override

public void genhomepage() {

//第一步 : 生成product.type.vm.html

mapmap = new hashmap<>();

string templatepath = "e:\\ideaproject\\aigou-parent\\aigou-product-parent\\aigou-product-service\\src\\main\\resources\\template\\product.type.vm";

string targetpath = "e:\\ideaproject\\aigou-parent\\aigou-product-parent\\aigou-product-service\\src\\main\\resources\\template\\product.type.vm.html";

//model 就是list 存放所有的商品型別

listproducttypes = loadtypetree();

map.put("model",producttypes);

map.put("templatepath",templatepath);

map.put("targetpath",targetpath);

staticpageclient.genstaticpage(map);

//第二步 : 生成home.html

map = new hashmap<>();

templatepath = "e:\\ideaproject\\aigou-parent\\aigou-product-parent\\aigou-product-service\\src\\main\\resources\\template\\home.vm";

targetpath = "e:\\ideaproject\\aigou-web-parent\\aigou-web-home\\home.html";

//model 中要有乙個資料是staticroot

mapmodel = new hashmap<>();

model.put("staticroot","e:\\ideaproject\\aigou-parent\\aigou-product-parent\\aigou-product-service\\src\\main\\resources\\");

map.put("model",model);

map.put("templatepath",templatepath);

map.put("targetpath",targetpath);

staticpageclient.genstaticpage(map);

4.測試–靜態資源(css,js,image)路徑不對

angularjs按商品型別,點選加入購物車

lang en charset utf 8 titletitle style src angular 1.5.5 angular.min.js script 宣告模板 為模板新增控制器 scope products 判斷彈出框 scope.fun function if n 0 else if n ...

基於ES的商品搜尋優化方案

新增底紋熱搜提示 動態的切換搜尋底紋,搜尋底紋為 商品銷售排名topn,通過快取獲取重新整理,兩個小時進行重新整理。聯動詞建立商品名稱,品牌,類目 型別,屬性 等實體的索引,通過查詢推薦實現搜尋聯動,索引進行動態更新。1.文字歸一 1 去除停用詞,如 使用者不小心輸入的特殊符號 標點符號 2 大小寫...

商品秒殺問題的解決方案

假設num是儲存在資料庫中的字段,儲存了被秒殺產品的剩餘數量。if num 0 假設在乙個併發量較高的場景,資料庫中num的值為1時,可能同時會有多個程序讀取到num為1,程式判斷符合條件,搶購成功,num減一。這樣會導致商品超發的情況,本來只有10件可以搶購的商品,可能會有超過10個人搶到,此時n...