我认为我在Redis中保存会话信息时遇到问题.我试图按照
spring-session-data-redis的说明进行操作,但是当我启动请求时,我无法在redis中找到任何会话信息.以下是我的代码和配置.
application.properties文件:
spring.session.store-type=redis
spring.session.redis.flush-mode= on-save
spring.session.redis.namespace= spring:session
spring.redis.host= 10.10.10.10
spring.redis.port=10000
pom.xml中:
org.springframework.session
spring-session-data-redis
redis.clients
jedis
2.9.0
jar
应用程序配置类:
@Configuration
@EnableRedisHttpSession
@PropertySource("application.properties")
public class AppConfig {
@Value("${spring.redis.host}")
private String redisHostName;
@Value("${spring.redis.port}")
private int redisPort;
@Bean
JedisConnectionFactory jedisConnectionFactory() {
RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration(
redisHostName, redisPort);
return new JedisConnectionFactory(redisStandaloneConfiguration);
}
}
我的示例获取请求控制器:
// test only
@CrossOrigin
@GetMapping(value = "/test/test")
public String justTest(HttpServletRequest request) {
HttpSession session = request.getSession();
session.setAttribute("sessionId", "ssssss");
String value = (String) session.getAttribute("sessionId").toString();
return value;
}
我错过了什么吗? spring-session-data-redis应该自动将会话存储到Redis,但它似乎不是那样的.我是否需要spring-session依赖和spring-data-redis依赖? redis连接正常,我将其设置为侦听所有接口.
我似乎可以在启动请求时检索会话ID,但为什么会话没有插入Redis?