**這裏都是基於前面的項目基礎上的。**springboot整合redis很是的方便,這也是springboot的宗旨,簡化配置。這篇文章就教你們如何使用springboot整合redis來實現session共享。java
<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>
複製代碼
在application.properties中配置redisnginx
# Redis服務器地址
spring.redis.host=localhost
# Redis服務器鏈接端口
spring.redis.port=6379
# Redis服務器鏈接密碼(默認爲空)
spring.redis.password=
複製代碼
由於我本地redis沒有設置密碼,因此密碼這裏留空。這個配置項能夠去掉,可是我留在這是是想告訴你們能夠在這裏配置redis密碼redis
其實springboot實現session共享很是的方便,只須要一個@EnableRedisHttpSession註解便可。把該註解加在springboot啓動類的上面。spring
到這裏,已經實現redis存儲session的功能了。下面經過一個簡單例子測試下session是否存儲在redis中了。springboot
新建一個SessionController.java,而且寫一個設置session的方法,以下:bash
啓動項目,經過postman調用,以下:服務器
經過redis可視化工具,查看redis中是否存在該屬性:session
經過查看,happyjava已經存在redis中了。app
經過上面的例子,已經證實了session被redis存儲了,下面,咱們經過把應用啓動在兩個端口,使用nginx轉發,測試session是否真的共享了。spring-boot
nginx.config配置
upstream session_server {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://session_server;
proxy_set_header Host $host;
}
}
複製代碼
這裏把localhost這個請求,轉發到了本地的8080和8081端口。
application.properties
server.port=8081
複製代碼
SessionController.java
這裏經過Value註解獲取了配置文件的server.port屬性,而且經過getSession方法返回。
IDEA設置能夠屢次啓動同個main方法。
把Allow paralled run勾上,便可屢次啓動一個main方法了。咱們先把server.port設置爲8080啓動一次,而後改成8081再次啓動。
經過postman屢次調用,能夠得到結果以下:
能夠看到,port分別出現了8080和8081,而且都可以正常獲取到以前設置的happyjava這個值,說明session共享已經配置成功了。
springboot配置session共享是很是方便的,只須要EnableRedisHttpSession註解便可。其實也可使用EnableMongoHttpSession註解用MongoDB來管理session。