通过spring session 实现session共享
通过spring session,结合redis,可以把session信息存储在redis中,实现多个服务间的session共享。
以下介绍在springboot工程中如何使用spring session
一、引入依赖
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
二、在配置类中开启对RedisHttpSession的支持
在配置类加注解@EnableRedisHttpSession
二、 在配置文件中对redis进行配置
server:
port: 8080
spring:
redis:
host: localhost
port: 6379
jedis:
pool:
max-idle: 10
max-active: 8
max-wait: -1
min-idle: 0
接下来对session的使用和未使用spring session前一致。
@RestController
public class LogInController {
@GetMapping("/login")
public String login(@RequestParam("username") String username, HttpServletRequest request){
HttpSession session = request.getSession(true);
session.setAttribute("username",username);
return username+",login success";
}
@GetMapping("/logout")
public String logout(HttpServletRequest request){
HttpSession session = request.getSession(true);
Object username = session.getAttribute("username");
session.invalidate();
return username+",logout success";
}
@GetMapping("/index")
public String sayHello(HttpServletRequest request){
HttpSession session = request.getSession(false);
System.out.println(session);
if(session==null){
return "未登录";
}
Object username = session.getAttribute("username");
return username+",welcome";
}
}
将当前工程复制一份,改变端口为8082,在工程一中访问/login进行登录,启动工程2,在工程2中访问/index可以获取到登录信息,两个服务间实现了session共享。
注意这里的session共享是在同一个域名下的多个服务间进行的。
标签:
springboot
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· 本地部署 DeepSeek:小白也能轻松搞定!
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 从 Windows Forms 到微服务的经验教训
· 李飞飞的50美金比肩DeepSeek把CEO忽悠瘸了,倒霉的却是程序员
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee