Spring Boot 整合Spring Session 通過Redis實現分散式共享Session
阿新 • • 發佈:2019-01-07
一、首先我們要引入依賴,修改pom.xml新增:
//引入spring session <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> </dependency> //引入redis <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
二、修改application.properties或者yml檔案:
spring.redis.port=6379
spring.redis.host=127.0.0.1
spring.redis.password=密碼沒可以不填
spring.redis.pool.max-active=100
spring.redis.pool.max-idle=5
spring.redis.pool.max-wait=60000
三、啟用redis管理Session
//第一種方式:修改application.properties,新增 spring.session.store-type=redis //第二種方式:啟用註解 @EnableRedisHttpSession
四、進行一些簡單的設定(兩種配置方式)
1.修改名稱空間:@EnableRedisHttpSession(redisNamespace="")
spring.session.redis.namespace=your_namesapce(自己起個名字)
2.修改過期時間:@EnableRedisHttpSession(maxInactiveIntervalInSeconds=2000
server.servlet.session.cookie.max-age=1800s
五、分散式程式通過HttpSession獲取/設定session,只要是程式配置在同一個redis,都可以共享
經測試SESSIONID的路徑預設就是"/",只要域名相同全路徑攜帶
@RequestMapping(“uid”)
String uid(HttpSession session) {
UUID uid = (UUID) session.getAttribute(“uid”);
if (uid == null) {
uid = UUID.randomUUID();
}
session.setAttribute(“uid”, uid);
return session.getId();
}