为什么Sping Boot 不配置Spring Session Redis?

yeotifhr  于 6个月前  发布在  Redis
关注(0)|答案(2)|浏览(70)

在这个example here之后,我升级了我的Sping Boot 3.2应用程序,使用Redis作为会话存储。
我添加了所需的依赖项:

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

字符串
我设置了一些应用程序属性(yaml):

spring.session.redis.flush-mode: on_save
spring.session.redis.namespace: "spring:session"

spring.data.redis.host: "localhost"
spring.data.redis.port: 6379


我有一个Redis服务器,可以在“127.0.0.1:6379”上连接。我可以通过redis-cli添加密钥,所以我知道,Redis是好的。
然而,当我搜索Redis数据库时,我不会得到任何与Spring Session相关的密钥。由于身份验证工作,我假设会话仍然由Tomcat本身管理。
根据Spring Session Configuration文档,应该创建一个springSessionRepositoryFilter bean,但这个bean没有配置。此外,上下文中没有RedisConnectionFactory
仅供参考:当使用spring-session-jdbc时,会话按预期存储在JDBC数据库中。
有谁知道为什么Spring Session不会设置Redis存储,尽管我一步一步地遵循文档?我需要添加一些文档中没有提到的额外配置吗?
非常感谢任何帮助

cotxawn7

cotxawn71#

“spring-session-data-redis”需要使用Redis客户端,如Letterfly,其到客户端的依赖路径如下:
spring-session-data-redis -> spring-data-redis -> lettuce-core(<optional>true</optional>)
当你添加spring-session-data-redis时,Maven不会自动导入生菜,因为可选的是true。你需要在pom.xml中添加spring-boot-starter-data-redislettuce-core

yyyllmsg

yyyllmsg2#

因此,在花了一个多小时的宝贵时间来找出问题可能是什么之后,我在YouTube视频中发现了以下依赖项,而这些依赖项是随意添加的:

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

字符串
好吧,由于Sping Boot 文档中从未提到对这个包的依赖,我想知道:开发人员在他们的第二份工作中应该是水晶球般的算命师吗?我他妈的怎么知道这是一个主要的必需依赖?
如果你把开发人员花在弄清楚如何让东西工作上的所有无谓的时间加起来,仅仅因为文档是垃圾,我想你一个月会达到数百万。

相关问题