spring-session解决分布式session

背景:解决分布式session有2种方式,1.使用Spring-session框架 2.使用token替代session,本文采用的是使用Spring-session框架解决分布式session问题

1.引入maven依赖

		<!--spring session 与redis应用基本环境配置,需要开启redis后才可以使用,不然启动Spring boot会报错 -->
		<dependency>
			<groupId>org.springframework.session</groupId>
			<artifactId>spring-session-data-redis</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-pool2</artifactId>
		</dependency>
		<dependency>
			<groupId>redis.clients</groupId>
			<artifactId>jedis</artifactId>
		</dependency>

2.yml配置redis

redis:
 hostname: 127.0.0.1
 port: 6379
 password: 123456

3.新建SessionConfig

//这个类用来配置redis服务器的连接
//maxInactiveIntervalInSeconds为SpringSession的过期时间(单位:秒)
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 1800)
public class SessionConfig {

	// 冒号后的值为没有配置文件时,自动装载的默认值
	@Value("${redis.hostname:localhost}")
	String hostName;
	@Value("${redis.port:6379}")
	int port;
	@Value("${redis.password:123456}")
	String passWord;

	@Bean
	public JedisConnectionFactory connectionFactory() {
		JedisConnectionFactory connection = new JedisConnectionFactory();
		connection.setPort(port);
		connection.setHostName(hostName);
		connection.setPassword(passWord);
		return connection;
	}
}

你可能感兴趣的:(java)