在我们日常的生产环境中,可能会通过nginx或apach进行分发,以保证系统的稳定性。在这种情况下,因为会涉及到多台服务器,我们必须通过一定的方式实现session共享,也就是服务器A需要拿到服务器B的session。 1、我们看一下springboot为我们提供的session共享有哪些方式,下面的这个类中是springboot为我们提供的几种方式

public enum StoreType {
    REDIS,
    MONGODB,
    JDBC,
    HAZELCAST,
    NONE;

    private StoreType() {
    }
}

2、在这里我们选择redis,在application.properties中配置

spring.session.store-type=redis
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=zhbinXXXX

3、引入spring-session的依赖

  <dependency>
     <groupId>org.springframework.session</groupId>
     <artifactId>spring-session-data-redis</artifactId>
  </dependency>

4、需要注意的点 1)启动项目的时候先打开redis服务; 2)在redis中放的东西要序列化; 3)BufferedImage不能序列化,我们生成一个对象存放验证码及过期时间即可。 4)用两个端口启动项目,如果端口A登录,用端口B可直接访问,说明session已经共享。