第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

您好,求解釋:關(guān)于在微服務(wù)下如何實現(xiàn)session共享?

您好,求解釋:關(guān)于在微服務(wù)下如何實現(xiàn)session共享?

catspeake 2019-12-03 10:06:30
在微服務(wù)下如何實現(xiàn)session共享
查看完整描述

3 回答

?
蝴蝶不菲

TA貢獻1810條經(jīng)驗 獲得超4個贊

Hibernat 對數(shù)據(jù)庫的操作是通過Session來實現(xiàn)的,這里的session不同于頁面間傳遞參數(shù)的session,
而是類似于JDBC中的 Connection。Session是Hibernate運作的中心,對象的生命周期、事務(wù)的管理、數(shù)據(jù)庫的存取都與session息息相關(guān)。
Session是由HibernateSessionFactory創(chuàng)建的,是線程安全的,可以讓多個執(zhí)行線程同時存取
HibernateSessionFactory而不會有數(shù)據(jù)共享的問題,但不能讓多個線程共享一個Session。
SessionFactory對象的創(chuàng)建:

Java代碼
Configuration cfg = new Configuration().configure();
SessionFactory sessions = cfg.buildSessionFactory();

session創(chuàng)建時使用了一個ThreadLocal類來建立一個Session管理的輔助類,使用ThreadLocal可以有效隔離執(zhí)行所用的數(shù)據(jù),
避開了Session的多線程之間的數(shù)據(jù)共享問題。

//創(chuàng)建一個線程本地變量。

Java代碼
public static final ThreadLocal<Session> threadlocal = new ThreadLocal<Session>();
public static org.hibernate.SessionFactory sessionFactory;

//獲取session的方法
public static Sessin getSession() throws HibernateException{
//返回線程局部變量的當前線程的值
Session s = (Session)threadLocal.get();
//如果sessionFactory為空,重新創(chuàng)建sessionFactory;如果線程為空,就打開一個新的session
if(session==null || !session.isOpen()){
if(sessionFactory == null){
rebuildSessionFactory(); session = (sessionFactory != null) sessionFactory.openSession():null;
// 將hibernate的session放入到線程中保存;只要這個線程不結(jié)束,都可以通過線程的get()方法來獲取
threadLocal.set(session);return session;



查看完整回答
反對 回復(fù) 2019-12-15
  • 3 回答
  • 0 關(guān)注
  • 931 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號