Spring Boot 使用 Redis 共享 Session 代码示例
目录
- 参考资料
- 1. 新建 Maven 工程
- 2. 引入 POM 依赖
- 3. 编写启动类
- 4. 编写Controller
- 5. 添加src/main/resources/application.properties配置文件
- 6. 验证
- 6.1 添加端口分别是8080和9090的2个启动配置
- 6.2 启动2个应用实例
- 6.3 访问 8080 端口应用创建session
- 6.4 浏览器访问 9090 端口应用获取session内容
- 6.5 查看 Redis 是否存放了session信息
- 6.6 验证结束
参考资料
- 博客:
1. 新建 Maven 工程
我新建 spring-boot-session-redis maven 工程
2. 引入 POM 依赖
org.springframework.boot
spring-boot-starter-web
2.4.12
org.springframework.boot
spring-boot-starter-data-redis
2.4.12
org.springframework.session
spring-session-data-redis
2.4.6
3. 编写启动类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* spring boot 使用 redis 共享 session 示例
*
*/
@SpringBootApplication
public class SpringBootSessionApp
{
public static void main( String[] args )
{
SpringApplication.run(SpringBootSessionApp.class, args);
}
}
4. 编写Controller
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 测试 Controller
* @author black
* @date 2022-04-07 16:52:028
*/
@RestController
public class SessionController {
@Autowired
private Environment env;
/**
* 给 session 设置属性 name = black, port=当前应用端口
* @param session
* @return
*/
@GetMapping("/set")
public String setSession(HttpSession session) {
session.setAttribute("name", "black");
session.setAttribute("port", env.getProperty("server.port"));
return "success";
}
/**
* 获取 session 中 name 和 port 属性
* @param session
* @return
*/
@GetMapping("/get")
public String getSession(HttpSession session) {
return String.valueOf(session.getAttribute("name") + " is set by port:" + session.getAttribute("port"));
}
}
5. 添加src/main/resources/application.properties配置文件
# 端口号
server.port=8080
# redis 配置
spring.redis.host=127.0.01
spring.redis.port=6379
6. 验证
6.1 添加端口分别是8080和9090的2个启动配置
eclipse中打开SpringBootSessionApp.java启动类 ,点击右键-"Run As"-"Run Configurations",在弹出对话框选中"Java Application"点击右键-"New Configuration"添加2个配置,分别是: SpringBootSessionApp-8080 和 SpringBootSessionApp-9090.
其中,SpringBootSessionApp-8080 的 VM arguments
添加 "-Dserver.port=8080",SpringBootSessionApp-9090 的 VM arguments
添加"-Dserver.port=9090",如下图:
6.2 启动2个应用实例
-
启动 8080 端口实例
eclipse中打开SpringBootSessionApp.java启动类,,点击右键-"Run As"-"Java Application",选择 6.1 添加的 SpringBootSessionApp-8080启动配置,然后点击OK即可. -
启动 9090 端口实例
eclipse中打开SpringBootSessionApp.java启动类,,点击右键-"Run As"-"Java Application",选择 6.1 添加的 SpringBootSessionApp-9090启动配置,然后点击OK即可.
6.3 访问 8080 端口应用创建session
访问: http://localhost:8080/set
6.4 浏览器访问 9090 端口应用获取session内容
访问: http://localhost:9090/get