日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

多個SpringBoot項目采用redis實現Session共享功能

瀏覽:197日期:2023-04-27 10:40:22

有時我們可能有多個不同的Web應用,可以相互調用,這時如果每個應用都有自己的session,那用戶跳轉到另一個應用時就又需要登陸一次,這樣會帶來很不好的體驗,因此我們需要在不同的應用中共享session。這里,我們采用redis來實現。

前置說明

由于只用到redis和springboot的整合,所以只能實現一個URL下的不同端口的應用之間的session共享,如果連應用名稱都完全不同的兩個應用要實現session共享,在這個基礎上還需要使用到Nginx,這種方式我暫時還沒有試過。(SpringBoot項目默認就是不帶應用名稱的,除非自己在配置文件中修改過)

需要提前在本地安裝好redis,或者連接遠程redis服務器。這里就不寫安裝教程了,可以自行去網上搜索。

添加依賴

需要為springboot項目添加以下兩個依賴,參與session共享的項目都需要添加。

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.springframework.session</groupId><artifactId>spring-session-data-redis</artifactId></dependency>

一個是redis的依賴,一個是spring-session-data-redis的依賴。

配置redis參數

在SpringBoot項目的application.properties配置文件中配置redis參數:

# Redis數據庫索引(默認為0)spring.redis.database=0# Redis服務器地址,如果是遠程redis服務器,就改成服務器地址spring.redis.host=127.0.0.1# Redis服務器連接端口,默認是6379spring.redis.port=6379# 連接池最大連接數(使用負值表示沒有限制)spring.redis.lettuce.pool.max-active=8# 連接池最大阻塞等待時間(使用負值表示沒有限制)spring.redis.lettuce.pool.max-wait=-1ms# 連接池中的最大空閑連接spring.redis.lettuce.pool.max-idle=5# 連接池中的最小空閑連接spring.redis.lettuce.pool.min-idle=0# 連接超時時間(毫秒)spring.redis.timeout=5000spring.session.store-type=redis

如果你的項目使用的是application.yml,就進行如下配置:

spring: redis: database: 0 host: 127.0.0.1 port: 6379 lettuce: pool: max-idle: 8 min-idle: 0 max-active: 8 max-wait: -1ms timeout: 5000 session: store-type: redis

配置session過期時間

創建一個用于配置session過期時間的配置類:

import org.springframework.context.annotation.Configuration;import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;@Configuration@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 86400*30)public class SessionConfig {}

簡單的登錄邏輯

@RequestMapping('/doLogin') public String doLogin(HttpServletRequest request, Model model){ String username = request.getParameter('username'); String password = request.getParameter('password'); if(StringUtils.isEmpty(username) || StringUtils.isEmpty(password)){ model.addAttribute('errorMsg', '用戶名和密碼不能為空'); return 'login'; } // 查找該用戶,成功后根據該用戶的類別返回到對應頁面 User user = userService.getUserByUsernameAndPassword(username, password); if(user == null) { model.addAttribute('errorMsg', '用戶名或密碼錯誤'); return 'login'; } else { request.getSession().setAttribute('currentUser', user); model.addAttribute('currentUser', user); String identity = user.getIdentity(); if('admin'.equals(identity)){ return 'admin'; }else{ return 'user'; } } }

直接按照原來的方式將對象存入session:request.getSession().setAttribute('currentUser', user); 此時session會存入redis。

登錄過濾器

@Componentpublic class LoginInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession session = request.getSession(); User currentUser = (User) session.getAttribute('currentUser'); if(currentUser == null){ response.sendRedirect(request.getContextPath() + '/toLogin'); return false; }else{ return true; } } @Override public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { } @Override public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse,Object o, Exception e) throws Exception { }}

同樣按原來的方式從session中取出對象:User currentUser = (User) session.getAttribute('currentUser'); 此時會從redis中取出該對象。

注意

如果只是存字符串等redis可以直接解析的對象,那就不會有什么問題,但是如果是存取對象就需要進行序列化了,比如上文中存的是我自定義的一個User對象,那么在存的時候,是會對該對象進行序列化的,取出時也會進行反序列化,因此該對象要實現Serializable接口,并且需要進行session共享的項目中都要有一個一模一樣的對象,比如我的User定義如下:

import java.io.Serializable;public class User implements Serializable { private String id; private String username; private String password; private String email; private String identity; private static final long serialVersionUID = -5809782578272943999L; // 省略getter、setter方法}

注意這個序列號serialVersionUID,不同應用中的User對象的這個序列號必須相同,否則無法正確進行反序列化。

小結

之所以要實現這個功能是因為在我搭建自己的網站時想集成之前做過的另一個應用,把它作為一個功能嵌入這個應用中,通過http互通。中間遇到了很多坑,這種方式的主要缺點就是不能支持不同應用名稱的應用之間的session共享,下一次可以嘗試一下加入Nginx。

到此這篇關于多個SpringBoot項目采用redis實現Session共享功能的文章就介紹到這了,更多相關SpringBoot Session共享內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产在线不卡一区二区三区| 蜜臀av亚洲一区中文字幕| 久久高清免费观看| 欧美国产日韩电影| 国产精品白丝一区二区三区| 国产精品腿扒开做爽爽爽挤奶网站| 99综合视频| 男女男精品视频网| 99久久久久| 日韩有码av| 欧美日韩在线观看首页| 激情综合网站| 开心激情综合| 国产农村妇女精品一二区| 亚洲一区二区三区免费在线观看| 日韩av中文字幕一区二区| se01亚洲视频| 中文字幕av一区二区三区人| 国产精品白丝一区二区三区| 麻豆久久精品| 国产日韩亚洲| 中文字幕一区二区三区日韩精品| 日韩高清在线不卡| 激情婷婷欧美| 婷婷六月综合| 黄色网一区二区| 奇米亚洲欧美| 三级欧美在线一区| 国产成人久久精品一区二区三区| 欧美日韩精品一本二本三本| 免费在线视频一区| 国精品一区二区| av在线最新| 欧美激情福利| 欧美亚洲色图校园春色| 日韩影院精彩在线| 欧美精品一区二区久久| 久久精品国产99国产精品| 天海翼精品一区二区三区| 亚洲一区二区三区高清| 美国三级日本三级久久99| 亚洲婷婷免费| 日韩精品dvd| 国产综合精品一区| 亚洲免费黄色| 黄色在线一区| 亚洲免费中文| 免费人成黄页网站在线一区二区| 一区在线视频观看| 亚洲一本视频| 另类av一区二区| 亚洲欧美日韩在线观看a三区| 久久99久久久精品欧美| 国产毛片精品| 国产专区精品| 精品高清久久| 激情自拍一区| 日韩欧美中文字幕一区二区三区| 国产成人免费| 国产精品密蕾丝视频下载| 日韩欧美在线精品| 一区二区三区国产在线| 在线亚洲激情| av亚洲免费| 亚洲欧美日韩一区在线观看| 国产一级久久| 日韩av资源网| 国产精品久久久久久妇女 | 国产精品视频3p| 精品网站999| 亚洲精品一级二级| 国产精品美女久久久| 久久国产精品免费精品3p | 久久国产精品毛片| 国产精品久久久久av蜜臀 | 久久精品成人| 婷婷精品在线| 91嫩草亚洲精品| 日韩视频中文| 欧美日韩视频免费看| 精品国产乱码| 亚洲激情社区| 日韩av中文字幕一区二区三区| 成人高清一区| 中文亚洲免费| 国产日韩欧美一区二区三区 | 日韩欧美另类一区二区| 日韩午夜高潮| 久久免费影院| av在线日韩| 欧美欧美黄在线二区| 精精国产xxxx视频在线野外 | 91欧美在线| 日韩精品一级| 九一成人免费视频| 欧美私人啪啪vps| 欧美日韩激情| 麻豆国产精品| 黄色免费成人| 欧美一区自拍| 国产精品巨作av| 精品1区2区3区4区| 一区二区三区四区日韩| 精品少妇一区| 欧美特黄视频| 999久久久91| 中文在线а√天堂| 麻豆国产精品一区二区三区| 在线国产日韩| 亚洲一区二区毛片| 狠狠久久婷婷| 夜夜嗨av一区二区三区网站四季av| 另类专区亚洲| 亚洲精品**中文毛片| 美女在线视频一区| 久久福利毛片| 在线精品福利| 视频一区中文字幕精品| 亚洲久草在线| 日韩精品视频中文字幕| 91免费精品国偷自产在线在线| 午夜日韩福利| 免费视频最近日韩| 日韩中文字幕亚洲一区二区va在线| 999精品在线| 一区在线视频观看| 日韩在线一二三区| 一区二区三区国产盗摄| 日韩午夜视频在线| 国产精品欧美三级在线观看| 亚洲区第一页| 国产欧美一区二区精品久久久 | 日韩精品水蜜桃| 夜夜精品视频| 日韩精品第一| 精品无人区麻豆乱码久久久| av资源中文在线| 91精品高清| 免费成人av在线播放| 日本亚洲最大的色成网站www | av资源中文在线| 在线日韩欧美| 日韩精品视频中文字幕| 成人高清一区| 中文字幕免费精品| 久久精品国产免费| 欧美色图国产精品| 日韩高清一区在线| 国产一区精品福利| 久久精品国内一区二区三区水蜜桃| 91精品推荐| 欧美啪啪一区| 久久精品亚洲欧美日韩精品中文字幕| 美女黄网久久| 一区在线免费| 综合日韩在线| www.九色在线| 日韩av网站在线免费观看| 久久久一二三| 国产情侣一区在线| 国产亚洲在线观看| 日韩高清不卡| 国产精品传媒麻豆hd| 免费不卡在线视频| 精品中文字幕一区二区三区av| 久久伊人国产| 日韩av一二三| 一区二区亚洲精品| 999视频精品| 国产精品二区不卡| 国产激情久久| 欧美影院精品| 69堂免费精品视频在线播放| 蜜桃视频欧美| 99久久夜色精品国产亚洲狼 | 夜夜嗨一区二区| 1000部精品久久久久久久久| 国际精品欧美精品| 日韩激情中文字幕| 亚洲综合小说| 亚洲网址在线观看| 亚洲综合专区| 国产精品日本| 伊人久久婷婷| 伊人久久亚洲影院| 在线亚洲国产精品网站| 免费久久精品| 欧美在线综合| 亚洲精品伦理| 日韩av在线免费观看不卡| 97成人在线| 亚洲va久久| 一本大道色婷婷在线| 偷拍亚洲精品| 久久国产免费看| 精品国产aⅴ| 亚洲国产成人二区| 久久五月天小说| 亚洲电影在线一区二区三区| 欧美91精品|