電商專案模組記錄

2021-10-13 12:56:40 字數 3495 閱讀 1857

spring整合redis集群

購物車dubbocartserviceimpl

redis配置

單點登陸

public

class

jsonutils

catch

(jsonprocessingexception e)

}//將json轉化為物件

public

static

t toobject

(string json,class

targetclass)

catch

(jsonprocessingexception e)

}}

在web伺服器config配置***攔截策略
@configuration

//標識乙個配置類

public

class

mvcconfigurer

implements

webmvcconfigurer

}

userinterceptor自定義***

自定義類實現handlerinterceptor介面,重寫放法:

prehandle

posthandle

aftercompletion

@component

//表示將此類標記為spring容器中的乙個bean

public

class

userinterceptor

implements

handlerinterceptor}}

//判斷ticket是否有效if(

!stringutils.

isempty

(ticket))}

//未登陸,重定向到登陸頁面

response.

sendredirect

("/userlogin.thml");

return

false

;//不執行controller

}

新增redis.properties配置檔案
redis.nodes=192.168.126.129:7000,192.168.126.129:7001,192.168.126.129:7002...
在common工具jar的config配置redis
@configuration

//標識乙個配置類

//載入redis配置檔案

@propertysource

("classpath:/properties/redis.properties"

)public

class

redisconfig")

private string nodes;

//在 getjediscluster() 方法上新增 @bean 註解則會往 spring 容器中新增乙個名為 jediscluster 的 bean,該 bean 即為方法的返回值。

@bean

public jediscluster getjediscluster()

//返回乙個jediscluster交給spring容器管理

return

newjediscluster

(nodeset);}

}

redis.properties新增card
redis.nodes=192.168.126.129:7000,192.168.126.129:7001,192.168.126.129:7002...

redis.card=card

//dubbo 的service(呼叫服務超時時間)

@service

(timeout =

3000

)public

class

dubbocartserviceimpl

implements

dubbocartservice")

private string cart_key;

//新增購物車

@override

public sysresult addcart

(long userid,long itemid,

int num)

//如果不存在,根據商品id獲取商品資訊

item item = null;

//從redis中獲取

if(jedis.

exists

(itemid)

)//從資料庫直接獲取

item = dubboitemservice.

selectitembyitemid

(itemid);if

(item!=null)

return sysresult.

fail()

;//把商品資訊存入redis購物車

cart cart =

newcart()

; cart.

setitem

(item)

.setnum

(num)

; jedis.

hset

(cart_key+

":"+userid,itemid,jsonutils.

tojson

(cart));

return sysresult.

success()

;}}

使用redis快取存放購物車資訊.

注意:常用5種資料型別:string,hash,list,set,sorted set

用hash型別

命令作用

hset key_name field_name value

新增(field不存在建立,field存在覆蓋value)

hget key_name field_name

獲取(存在返回field,不存在返回nil)

hexists key_name field_name

判斷key中指定field是否存在(存在1,不存在0)

hlen key_name

獲取雜湊表中字段的數量

@service

(timeout =

3000

)public

class

dubbouserserviceimpl

implements

dubbouserservice

}

電商秒殺專案 交易模組

首先建立交易模型,然後根據模型建立表,生成實體。然後建立service,寫建立訂單的方法。建立訂單 1校驗下單狀態 商品存在?使用者合法?購買數量正確?override public itemmodel getitembyid integer id itemmodel itemmodel conve...

電商秒殺專案 秒殺模組

itemmodel中新增乙個 private promomodel promomodel 並建立get set方法。修改getitembyid方法 override public itemmodel getitembyid integer id itemmodel itemmodel convert...

電商專案使用者模組的理解

一 使用者模組 1 使用者登陸 請求引數 使用者名稱 密碼 httpsession session a 將使用者名稱和密碼傳到後台介面 b 把該使用者名稱到資料庫查詢是否存在該使用者名稱 c 如資料庫存在使用者名稱,把傳的密碼進行md5雜湊,通過使用者名稱和密碼進行查詢使用者 d 將查詢出來的使用者...