首页 > 其他分享 >springboot 共享session

springboot 共享session

时间:2023-12-27 22:32:50浏览次数:33  
标签:springboot Session Spring session spring 共享 RedisTemplate

在Spring Boot中,可以使用Spring Session来实现共享session。Spring Session是一个基于Spring的会话管理框架,它提供了跨多个服务器的会话共享功能。

要使用Spring Session实现共享session,需要按照以下步骤进行配置:

  1. 添加依赖

在Spring Boot项目的pom.xml文件中添加Spring Session的依赖:

xml复制代码
 <dependency>  
 
     <groupId>org.springframework.boot</groupId>  
 
     <artifactId>spring-boot-starter-session</artifactId>  
 
 </dependency>
  1. 配置数据源和Redis

确保你的项目中已经配置了数据源和Redis。如果还没有配置,可以在application.properties文件中添加以下配置:

properties复制代码
 spring.datasource.url=jdbc:mysql://localhost:3306/mydb  
 
 spring.datasource.username=root  
 
 spring.datasource.password=root  
 
 spring.datasource.driver-class-name=com.mysql.jdbc.Driver  
 
   
 
 spring.redis.host=localhost  
 
 spring.redis.port=6379
  1. 配置RedisTemplate和SessionRepository

在配置类中添加RedisTemplate和SessionRepository的配置:

java复制代码
 @Configuration  
 
 public class SessionConfig {  
 
     @Bean  
 
     public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {  
 
         RedisTemplate<String, Object> template = new RedisTemplate<>();  
 
         template.setConnectionFactory(factory);  
 
         return template;  
 
     }  
 
     @Bean  
 
     public SessionRepository sessionRepository() {  
 
         return new RedisSessionRepository();  
 
     }  
 
 }
  1. 启用Session共享

在需要共享session的控制器或服务中,使用HttpSession对象来管理session数据。为了启用session共享,需要在配置类中添加@EnableRedisHttpSession注解:

java复制代码
 @Configuration  
 
 @EnableRedisHttpSession(maxSessions = 10000) // 设置最大会话数,可根据实际情况调整  
 
 public class SessionConfig {  
 
     // ...省略其他代码...  
 
 }

现在,你的Spring Boot应用程序已经启用了共享session功能。当用户访问应用程序时,session数据将存储在Redis中,并在多个服务器之间共享。请注意,为了实现跨域的session共享,你需要在客户端的请求头中设置SameSite=None; Secure属性。

标签:springboot,Session,Spring,session,spring,共享,RedisTemplate
From: https://blog.51cto.com/u_16375957/9004879

相关文章

  • Java登陆第三十天——Cookie和Session
    会话会话就是客户端与服务器的一次交互。HTTP是一种无状态协议无状态:服务端不会记录客户端信息。有的时候,我们需要保存客户端的信息。对于登陆功能来说,保存客户端信息,可以避免客户端每访问都需要登陆一次至此,会话管理诞生。CookieCookie是一种客户端会话技术,并保存在......
  • 将本地服务共享给服务器方法之一(SSH -R)
    文档说明:只记录关键地方;发布时间:2023-12-27需求:通过公网临时访问本地正在开发的服务运行环境:linuxmacos状态:实验完善中用途例子:1、本地调试微信公众号服务器推送的消息2、公网临时预览,预览本地开发的服务3、服务器访问本地NAS服务4、远程协助等等5、服......
  • docker部署Vaultwarden密码共享管理系统
    转自地址:https://blog.csdn.net/weixin_51697917/article/details/133654754Vaultwarden是一个开源的密码管理器,它是Bitwarden密码管理器的自托管版本。它提供了类似于Bitwarden的功能,允许用户安全地存储和管理密码、敏感数据和身份信息。Vaultwarden的主要特点包括:1.安全的数据存......
  • mybatis在读取配置文件,创建SqlSessionFactory对象时。需要对密码进行解密,再连接数据库
    1、我看了网上很多的方法,主要是说通过新建一个jdbc.properties来获取数据库连接池。但是我试了并没有作用。 2、解决办法:简单粗暴。先用后代码读取原有的mybatis-configuration.xml,然后将密码进行解密后,设值到xml中。最后把解密的xml作为源。去生成一份新的xml文件,把心的xml......
  • Spring/SpringBoot 参数校验
    目录基础设施搭建1.相关依赖2.实体类案例校验参数注解JSR提供的校验注解:HibernateValidator提供的校验注解:实践案例......
  • Ubuntu访问Windows共享
    要在Ubuntu上访问Windows共享,可以通过以下步骤进行设置:确保Windows共享设置正确:共享文件夹:在Windows上选择要共享的文件夹,并确保它已共享。右键点击文件夹,选择“属性”,然后进入“共享”选项卡,设置共享选项和权限。网络发现和共享:确保Windows上的网络发现和文件共享已打开。......
  • springboot 中,ApplicationRunner、InitializingBean、@PostConstruct 执行顺序
    划水。。。ApplicationRunner、InitializingBean、@PostConstruct执行顺序InitializingBean是Spring提供的一个接口,它只有一个方法afterPropertiesSet(),该方法会在容器初始化完成后被调用。ApplicationRunner是SpringBoot提供的一个接口,它有一个方法run(),该方法会在......
  • springboot注解表达式
    ("execution(*com.aop..*.*(..))")1、execution():表达式主体2、第一个*号:表示返回类型,*号表示所有的类型3、.包名:表示需要拦截的包名,后面的两个句点表示当前包和当前包的所有子包4、第二个*号:表示类名,号表示所有的类5、.*(..):最后这个星号表示方法名,号表示所有的方法,后......
  • 百度网盘(百度云)SVIP超级会员共享账号每日更新(2023.12.27)
    一、百度网盘SVIP超级会员共享账号可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答。我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免了U盘的物理载体,直接在网上就实现文件传输。百度网盘SVIP会员可以让自己百度账......
  • SpringBoot内置Tomcat启动原理
    SpringBoot内置Tomcat启动原理当依赖Spring-boot-starter-web依赖时会在SpringBoot中添加:ServletWebServerFactoryAutoConfigurationservlet容器自动配置类该自动配置类通过@Import导入了可用(通过@ConditionalOnClass判断决定使用哪一个)的一个Web容器工厂在内嵌Tomc......