使用springboot+redis實現session共享

最近給同學寫了個SpringBoot加Redis實現session共享,想了想還是決定在博客上寫一下當時的心得。首先我們需要先建一個springboot項目,pom文件如下:

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

   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
   </dependency>
</dependencies>
這裏有一點需要注意的是,我們使用https://start.spring.io創建項目的時候,選擇spring-session後我們需要把下面的artifactId由spring-session改爲spring-session-data-redis,不然的話關於redis的一些基本jar包不會自動依賴,項目建好之後我們需要開啓redis session支持:

import org.springframework.context.annotation.Configuration;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

/**
 * Created by Administrator on 2017/8/27.
 */
@Configuration
@EnableRedisHttpSession
public class SessionConfig {
}
  application.propreties文件的配置如下:

spring.redis.host=localhost
spring.redis.port=6379
server.port=8080
大家可以看到我使用的是本機的redis,在配置這個的時候我們指定地址跟端口就ok了,到這裏基本的配置都已經完成了,我們來寫個基本的demo:

@RestController
public class IndexController {

    @RequestMapping("/route/1")
    public Map<String,Object> index(HttpServletRequest request,String msg){
        Map<String,Object> map = new HashMap<>();
        HttpSession session = request.getSession();
        session.setAttribute("msg",msg);
        map.put("msg",session.getAttribute("msg"));
        return map;
    }
}
@RestController
public class IndexController {

    @RequestMapping("/route/2")
    public Map<String,Object> index(HttpServletRequest request){
        Map<String,Object> map = new HashMap<>();
        HttpSession session = request.getSession();
        map.put("msg",session.getAttribute("msg"));
        return map;
    }
}
這裏是兩個模塊的測試controller。




在redis中的session也成功找到了,如下:





從結果看,我們的session已經成功的實現了共享,搞定!

github:https://github.com/knockinHeavenDoor/spring-session

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章