暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

springboot session+redis共享

NIU技术那点事 2018-05-23
244

springboot session+redis共享时,需设置相关配置文件:

pom.xml 配置:

<!-- spring boot 基本环境 -->

   <parent>

       <groupId>org.springframework.boot</groupId>

       <artifactId>spring-boot-starter-parent</artifactId>

       <version>1.3.1.RELEASE</version>

   </parent>

 

   <dependencies>

       <!--spring boot web应用基本环境配置 -->

       <dependency>

           <groupId>org.springframework.boot</groupId>

           <artifactId>spring-boot-starter-web</artifactId>

       </dependency>

       <!--spring boot 与redis应用基本环境配置 -->

       <dependency>

           <groupId>org.springframework.boot</groupId>

           <artifactId>spring-boot-starter-data-redis</artifactId>

       </dependency>

        <!--spring session 与redis应用基本环境配置,需要开启redis后才可以使用,不然启动Spring boot会报错 -->

       <dependency>

           <groupId>org.springframework.session</groupId>

           <artifactId>spring-session-data-redis</artifactId>

       </dependency>

</dependencies>

 

注意:spring-boot-starter-redis其实和spring-boot-starter-data-redis相同

 

 

application.properties中添加redis的配置

spring.redis.host=localhost

spring.redis.password=

spring.redis.port=6379

 

增加配置类:

@EnableRedisHttpSession

public classHttpSessionConfig {

       @Bean

       public JedisConnectionFactoryconnectionFactory() {

              return new JedisConnectionFactory();

       }

}

这个配置类有什么用呢?

官方文档:

The Springconfiguration is responsible for creating a Servlet Filter that replaces theHttpSession implementation with an implementation backed by Spring Session.

也就是说,这个配置类可以创建一个过滤器,这个过滤器支持Spring Session代替HttpSession发挥作用。

The@EnableRedisHttpSession annotation creates a Spring Bean with the name ofspringSessionRepositoryFilter that implements Filter. The filter is what is incharge of replacing the HttpSession implementation to be backed by SpringSession. In this instance Spring Session is backed by Redis.

@EnableRedisHttpSession注解会创建一个springSessionRepositoryFilter的bean对象去实现这个过滤器。过滤器负责代替HttpSession。

 也就是说,HttpSession不再发挥作用,而是通过过滤器使用redis直接操作Session。

HttpSession的实现被SpringSession替换,操作HttpSession等同于操作redis中的数据。


文章转载自NIU技术那点事,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论