org.springframework.boot spring-boot-starter-data-redis org.springframework.boot spring-boot-starter-web org.springframework.session spring-session-data-redis

二、配置 Redis

我们需要借助 redis 实现 session 共享,所以我们需要在配置文件中配置 redis 的信息

server:
port: 8080

spring:
redis:
host: 127.0.0.1
port: 6379
database: 0
password:

我们配置了该项目的端口,以及 redis 的连接信息

三、写接口

package com.zyxx.session.controller;
import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpSession;
@RestController
 public class DemoController { /**• 获取项目端口
/ @Value(“${server.port}”)
 private String port; /*• 将信息存放在session中
/ @GetMapping(“set”)
 public String set(HttpSession session) {
 session.setAttribute(“user”, “hello world~~~”);
 return port;
 } /*• 从session中获取信息
 */ @GetMapping(“get”)
 public String get(HttpSession session) {
 return session.getAttribute(“user”) + " : " + port;
 }
 }

我们写了一个 set,一个 get 方法,将信息存放在 session 中,从 session 中取出信息

四、打包测试

springboot检查session ID springboot如何获取session_java

启动项目,分别启动在两个端口:

java -jar .\session-0.0.1-SNAPSHOT.jar --server.port=8080
java -jar .\session-0.0.1-SNAPSHOT.jar --server.port=8081

分别启动在 8080,8081端口

访问:http://localhost:8080/set

springboot检查session ID springboot如何获取session_学习_02

我们从 8080 端口,将信息保存在 session 中

我们访问:http://localhost:8081/get

springboot检查session ID springboot如何获取session_面试_03

我们在 8081 端口的项目中从 session 中取出了内容:hello world~~~

由此证明,我们的 session 共享已经成功

五、分布式部署

下面我们借助 nginx 代理转发访问这两个项目

1、配置转发

nginx 配置文件如下:

springboot检查session ID springboot如何获取session_java_04

主要配置内容:

upstream helloworld{
 server 127.0.0.1:8080 weight=1;
 server 127.0.0.1:8081 weight=2;
 }