最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Spring-Boot集成Spring session并存入redis

 更新時(shí)間:2017年05月04日 14:33:02   作者:zl18310999566  
這篇文章主要介紹了詳解Spring-Boot集成Spring session并存入redis,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

spring Session 提供了一套用于管理用戶 session 信息的API和實(shí)現(xiàn)。

Spring Session為企業(yè)級(jí)Java應(yīng)用的session管理帶來(lái)了革新,使得以下的功能更加容易實(shí)現(xiàn):

  1. 編寫可水平擴(kuò)展的原生云應(yīng)用。
  2. 將session所保存的狀態(tài)卸載到特定的外部session存儲(chǔ)中,如Redis或Apache Geode中,它們能夠以獨(dú)立于應(yīng)用服務(wù)器的方式提供高質(zhì)量的集群。
  3. 當(dāng)用戶使用WebSocket發(fā)送請(qǐng)求的時(shí)候,能夠保持HttpSession處于活躍狀態(tài)。
  4. 在非Web請(qǐng)求的處理代碼中,能夠訪問(wèn)session數(shù)據(jù),比如在JMS消息的處理代碼中。
  5. 支持每個(gè)瀏覽器上使用多個(gè)session,從而能夠很容易地構(gòu)建更加豐富的終端用戶體驗(yàn)。
  6. 控制session id如何在客戶端和服務(wù)器之間進(jìn)行交換,這樣的話就能很容易地編寫Restful API,因?yàn)樗梢詮腍TTP 頭信息中獲取session id,而不必再依賴于cookie。

Spring-Boot集成Spring session并存入redis

添加maven依賴

Redis的相關(guān)依賴可以看之前的內(nèi)容,這里需要增加如下依賴。

<dependency> 
   <groupId>org.springframework.session</groupId> 
   <artifactId>spring-session</artifactId> 
</dependency> 

Java代碼實(shí)現(xiàn)

增加HttpSessionConfig。

package com.core.config; 
 
import org.springframework.context.annotation.Bean; 
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession; 
import org.springframework.session.web.http.HeaderHttpSessionStrategy; 
import org.springframework.session.web.http.HttpSessionStrategy; 
 
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 100, redisNamespace = "xxxx") 
public class HttpSessionConfig { 
 
  @Bean 
  public HttpSessionStrategy httpSessionStrategy() { 
    return new HeaderHttpSessionStrategy(); 
  } 
} 

其中注解 EnableRedisHttpSession 創(chuàng)建了一個(gè)名為springSessionRepositoryFilter的Spring Bean,該Bean實(shí)現(xiàn)了Filter接口。該filter負(fù)責(zé)通過(guò) Spring Session 替換HttpSession從哪里返回。這里Spring Session是通過(guò) redis 返回。

類中的方法 httpSessionStrategy(),用來(lái)定義Spring Session的 HttpSession 集成使用HTTP的頭來(lái)取代使用 cookie 傳送當(dāng)前session信息。如果使用下面的代碼,則是使用cookie來(lái)傳送 session 信息。

@Bean 
public HttpSessionStrategy httpSessionStrategy() { 
  return new CookieHttpSessionStrategy(); 
} 

使用HTTP的頭,會(huì)看到如下信息

-- response -- 
200  
x-auth-token: 4792331e-44c2-4285-a9d1-ebabf0e72251 
Content-Type: text/html;charset=UTF-8 
Content-Length: 75 
Date: Mon, 09 Jan 2017 10:14:00 GMT 
 
8e107efb-bf1e-4a55-b896-c97f629c8e40 : 4792331e-44c2-4285-a9d1-ebabf0e72251 

使用cookie,會(huì)看到如下信息

-- response -- 
200  
Set-Cookie: SESSION=4792331e-44c2-4285-a9d1-ebabf0e72251;path=/;HttpOnly 
Content-Type: text/html;charset=UTF-8 
Content-Length: 75 
Date: Mon, 09 Jan 2017 10:47:37 GMT 

測(cè)試

在controller中增加如下代碼

@GetMapping("/") 
public String uid(HttpServletRequest request) { 
  HttpSession session = request.getSession(); 
  UUID uid = (UUID) session.getAttribute("uid"); 
  if (uid == null) { 
    uid = UUID.randomUUID(); 
  } 
  session.setAttribute("uid", uid); 
  return uid.toString() + " : " + session.getId(); 
} 

啟動(dòng)服務(wù),在chrome瀏覽器輸入 http://127.0.0.1:8080/,得到sessionId

fbfae849-1d49-4301-b963-573048e763e7 

在redis中可以看到如下信息

1) "spring:session:xxxx:sessions:fbfae849-1d49-4301-b963-573048e763e7" 

2) "spring:session:xxxx:expirations:1483958700000" 

3) "spring:session:xxxx:sessions:expires:fbfae849-1d49-4301-b963-573048e763e7" 

打開(kāi)火狐的HttpRequester,使用chrome獲取的sessionId點(diǎn)擊Get,可以看到如下輸出

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring bean加載控制實(shí)現(xiàn)方法

    Spring bean加載控制實(shí)現(xiàn)方法

    很多時(shí)候我們需要根據(jù)不同的條件在容器中加載不同的Bean,或者根據(jù)不同的條件來(lái)選擇是否在容器中加載某個(gè)Bean,這就是Bean的加載控制,一般我們可以通過(guò)編程式或注解式兩種不同的方式來(lái)完成Bean的加載控制
    2022-12-12
  • Java的Hello World詳解

    Java的Hello World詳解

    當(dāng)我們學(xué)習(xí)一門編程語(yǔ)言的時(shí)候,我們都會(huì)先學(xué)如何輸出Hello World!本文通過(guò)幾個(gè)例子給大家介紹輸出Hello World的代碼,感興趣的朋友一起看看吧
    2021-09-09
  • java8快速實(shí)現(xiàn)List轉(zhuǎn)map 、分組、過(guò)濾等操作

    java8快速實(shí)現(xiàn)List轉(zhuǎn)map 、分組、過(guò)濾等操作

    這篇文章主要介紹了java8快速實(shí)現(xiàn)List轉(zhuǎn)map 、分組、過(guò)濾等操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Hadoop源碼分析六啟動(dòng)文件namenode原理詳解

    Hadoop源碼分析六啟動(dòng)文件namenode原理詳解

    本篇是Hadoop源碼分析系列文章第六篇,主要介紹Hadoop中的啟動(dòng)文件namenode,后續(xù)本系列文章會(huì)持續(xù)更新,有需要的朋友可以借鑒參考下
    2021-09-09
  • 使用Java和PostgreSQL存儲(chǔ)向量數(shù)據(jù)的實(shí)現(xiàn)指南

    使用Java和PostgreSQL存儲(chǔ)向量數(shù)據(jù)的實(shí)現(xiàn)指南

    在當(dāng)今的數(shù)字化時(shí)代,數(shù)據(jù)存儲(chǔ)的方式和技術(shù)正變得越來(lái)越復(fù)雜和多樣化,隨著機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)的發(fā)展,向量數(shù)據(jù)的存儲(chǔ)和管理變得尤為重要,本文將詳細(xì)介紹如何使用 Java 和 PostgreSQL 數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)向量數(shù)據(jù),需要的朋友可以參考下
    2024-09-09
  • Spring?boot?運(yùn)用策略模式實(shí)現(xiàn)避免多次使用if

    Spring?boot?運(yùn)用策略模式實(shí)現(xiàn)避免多次使用if

    這篇文章主要介紹了Spring?boot?運(yùn)用策略模式實(shí)現(xiàn)避免多次使用if,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • Maven的生命周期與自定義插件實(shí)現(xiàn)方法

    Maven的生命周期與自定義插件實(shí)現(xiàn)方法

    Maven的生命周期就是對(duì)所有的構(gòu)建過(guò)程進(jìn)行抽象和統(tǒng)一。包含了項(xiàng)目的清理、初始化、編譯、測(cè)試、打包、集成測(cè)試、驗(yàn)證、部署和站點(diǎn)生成等幾乎所有的構(gòu)建步驟
    2022-12-12
  • Java中MyBatis傳入?yún)?shù)parameterType問(wèn)題

    Java中MyBatis傳入?yún)?shù)parameterType問(wèn)題

    這篇文章主要介紹了Java中MyBatis傳入?yún)?shù)parameterType問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • SpringMVC項(xiàng)目異常處理機(jī)制詳解

    SpringMVC項(xiàng)目異常處理機(jī)制詳解

    SpringMVC是一種基于Java,實(shí)現(xiàn)了Web MVC設(shè)計(jì)模式,請(qǐng)求驅(qū)動(dòng)類型的輕量級(jí)Web框架,即使用了MVC架構(gòu)模式的思想,將Web層進(jìn)行職責(zé)解耦?;谡?qǐng)求驅(qū)動(dòng)指的就是使用請(qǐng)求-響應(yīng)模型,框架的目的就是幫助我們簡(jiǎn)化開(kāi)發(fā),SpringMVC也是要簡(jiǎn)化我們?nèi)粘eb開(kāi)發(fā)
    2022-08-08
  • java中BigDecimal用法詳解

    java中BigDecimal用法詳解

    本文詳細(xì)講解了java中BigDecimal的用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12

最新評(píng)論

金坛市| 塘沽区| 平度市| 嫩江县| 宜川县| 盐源县| 上高县| 仁布县| 泸西县| 莒南县| 库车县| 枣庄市| 台中市| 嘉祥县| 镇远县| 青龙| 大安市| 杨浦区| 杭州市| 英德市| 酒泉市| 黄骅市| 资源县| 长春市| 葫芦岛市| 六安市| 长宁县| 三都| 辉南县| 吴川市| 双城市| 冀州市| 延安市| 马关县| 平果县| 蕲春县| 德清县| 志丹县| 文山县| 临澧县| 司法|