**这里都是基于前面的项目基础上的。**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。