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

學(xué)習(xí)Spring-Session+Redis實(shí)現(xiàn)session共享的方法

 更新時(shí)間:2017年05月04日 11:52:49   作者:fengzp  
本篇文章主要介紹了學(xué)習(xí)Spring-Session+Redis實(shí)現(xiàn)session共享的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

1、添加依賴(lài)

<dependency>
 <groupId>org.springframework.session</groupId>
 <artifactId>spring-session-data-redis</artifactId>
 <version>1.2.1.RELEASE</version>
</dependency>
<dependency>
 <groupId>redis.clients</groupId>
 <artifactId>jedis</artifactId>
 <version>2.8.1</version>
</dependency>

2、配置

spring-mvc.xml:

<bean id="redisHttpSessionConfiguration"
   class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration">
  <property name="maxInactiveIntervalInSeconds" value="600"/>
</bean>

<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
  <property name="maxTotal" value="100" />
  <property name="maxIdle" value="10" />
</bean>

<bean id="jedisConnectionFactory"
   class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" destroy-method="destroy">
  <property name="hostName" value="${redis_hostname}"/>
  <property name="port" value="${redis_port}"/>
  <property name="password" value="${redis_pwd}" />
  <property name="timeout" value="3000"/>
  <property name="usePool" value="true"/>
  <property name="poolConfig" ref="jedisPoolConfig"/>
</bean>

web.xml添加攔截器:

<filter>
  <filter-name>springSessionRepositoryFilter</filter-name>
  <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
  <filter-name>springSessionRepositoryFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

3、使用spring-session

只要使用標(biāo)準(zhǔn)的servlet api調(diào)用session,在底層就會(huì)通過(guò)Spring Session得到的,并且會(huì)存儲(chǔ)到Redis或其他你所選擇的數(shù)據(jù)源中。

這里是我寫(xiě)的一個(gè)demo:

/**
 * @author fengzp
 * @date 17/2/23下午3:19
 */
@Controller
@RequestMapping(value = "index")
public class IndexController {

  private final Gson gson = new GsonBuilder().setDateFormat("yyyyMMddHHmmss").create();

  @RequestMapping(value = "login")
  public String login(HttpServletRequest request, String username){

    request.getSession().setAttribute("user", gson.toJson(new User(username,"123456")));

    return "login";
  }

  @RequestMapping(value = "index")
  public String index(HttpServletRequest request, Model model){

    User user = gson.fromJson(request.getSession().getAttribute("user").toString(), User.class);

    model.addAttribute("user", user);

    return "index";
  }
}

index.jsp:

第一個(gè)tomcat

<html>
<body>
<h2>Hello World!</h2>
<p>${user.username}</p>
</body>
</html>

第二個(gè)tomcat

<html>
<body>
<h2>Hello World! i am the second!</h2>
<p>${user.username}</p>
</body>
</html>

測(cè)試

這里利用上一篇nginx負(fù)載配置的兩個(gè)tomcat來(lái)測(cè)試。

首先訪問(wèn) http://192.168.99.100/feng/index/login.htm?username=nginx 來(lái)觸發(fā)生成session。

查看redis,發(fā)現(xiàn)session已經(jīng)保存到redis。

訪問(wèn) http://192.168.99.100/feng/index/index.htm 來(lái)讀取session, 并刷新多次。

發(fā)現(xiàn)在負(fù)載的情況下讀取session沒(méi)問(wèn)題,并且是同一個(gè)session,成功實(shí)現(xiàn)負(fù)載+session共享!以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot加載啟動(dòng)的源碼解析

    SpringBoot加載啟動(dòng)的源碼解析

    這篇文章主要介紹了SpringBoot加載啟動(dòng)的源碼解析,@SpringBootApplication注解是Spring Boot的核心注解,它其實(shí)是一個(gè)組合注解,本身其實(shí)也是一個(gè)IoC容器的配置類(lèi),需要的朋友可以參考下
    2023-12-12
  • Springboot初始化啟動(dòng)報(bào)錯(cuò)Error?creating?bean?with?name?'dataSource'?defined?in?class?path?resource

    Springboot初始化啟動(dòng)報(bào)錯(cuò)Error?creating?bean?with?name?'da

    這篇文章主要為大家介紹了Springboot初始化啟動(dòng)報(bào)Error?creating?bean?with?name?'dataSource'?defined?in?class?path?resource解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • JDK都出到14了,你有什么理由不會(huì)函數(shù)式編程(推薦)

    JDK都出到14了,你有什么理由不會(huì)函數(shù)式編程(推薦)

    這篇文章主要介紹了JDK都出到14了,你有什么理由不會(huì)函數(shù)式編程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 簡(jiǎn)單了解Java的默認(rèn)和靜態(tài)方法

    簡(jiǎn)單了解Java的默認(rèn)和靜態(tài)方法

    這篇文章主要介紹了簡(jiǎn)單了解Java的默認(rèn)和靜態(tài)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • 淺談SpringCloud之Ribbon詳解

    淺談SpringCloud之Ribbon詳解

    這篇文章主要介紹了淺談SpringCloud之Ribbon,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)SpringCloud的小伙伴們有很大的幫助,需要的朋友可以參考下
    2021-05-05
  • idea如何反編譯jar包

    idea如何反編譯jar包

    文章介紹了如何使用IntelliJ IDEA反編譯JAR包,并詳細(xì)步驟包括安裝JavaBytecodeDecompiler插件、使用命令行反編譯、解決Java版本不兼容問(wèn)題以及推薦其他反編譯工具
    2025-02-02
  • 深入淺出探索Java分布式鎖原理

    深入淺出探索Java分布式鎖原理

    單體系統(tǒng)中,在高并發(fā)場(chǎng)景下想要訪問(wèn)共享資源的時(shí)候,我們需要通過(guò)加鎖的方式來(lái)保證共享資源并發(fā)的安全性,確保在同一時(shí)刻只有一個(gè)線程對(duì)共享資源進(jìn)行操作
    2022-02-02
  • springboot 跨域配置類(lèi)及跨域請(qǐng)求配置

    springboot 跨域配置類(lèi)及跨域請(qǐng)求配置

    這篇文章主要介紹了springboot 跨域配置類(lèi)及跨域請(qǐng)求配置,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • SpringBoot結(jié)合Redis實(shí)現(xiàn)序列化的方法詳解

    SpringBoot結(jié)合Redis實(shí)現(xiàn)序列化的方法詳解

    Spring提供了一個(gè)RedisTemplate來(lái)進(jìn)行對(duì)Redis的操作,但是RedisTemplate默認(rèn)配置的是使用Java本機(jī)序列化。如果要對(duì)對(duì)象操作,就不是那么的方便。所以本文為大家介紹了另一種SpringBoot結(jié)合Redis實(shí)現(xiàn)序列化的方法,需要的可以參考一下
    2022-06-06
  • Java反射根據(jù)不同方法名動(dòng)態(tài)調(diào)用不同的方法(實(shí)例)

    Java反射根據(jù)不同方法名動(dòng)態(tài)調(diào)用不同的方法(實(shí)例)

    下面小編就為大家?guī)?lái)一篇Java反射根據(jù)不同方法名動(dòng)態(tài)調(diào)用不同的方法(實(shí)例)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-08-08

最新評(píng)論

原阳县| 阜阳市| 绥德县| 平南县| 林州市| 胶南市| 四川省| 桂东县| 永修县| 滨州市| 商城县| 平湖市| 永清县| 海口市| 育儿| 绥德县| 团风县| 嘉祥县| 秦皇岛市| 碌曲县| 渝中区| 博湖县| 清流县| 随州市| 剑河县| 东港市| 朝阳区| 本溪市| 镇宁| 辉县市| 巩义市| 德钦县| 曲水县| 横山县| 揭西县| 土默特左旗| 六枝特区| 连南| 鲜城| 兴仁县| 集安市|