起因
今天配置一个 Springboot-3.3.5 的 redis-starter,结果一直提示链接不上 redis
java.net.ConnectException: Connection refused
我反复对比了新项目和老项目的 redis 配置文件格式,是一模一样的!
Debug 过程
配置中增加了如下配置
logging:
level:
org.springframework.data.redis: DEBUG
发现了这样一条 DEBUG 信息
2024-11-13T15:21:51.445+08:00 DEBUG 21370 --- [content.assistant] [nio-8080-exec-1] o.s.d.redis.core.RedisConnectionUtils : Fetching Redis Connection from RedisConnectionFactory
进入单步调试以后,发现:redis 配置完全没有被加载进来!
经过一阵资料查找,发现 Springboot-2 和 Springboot-3 的 redis 配置方式发生了改变
由 spring.redis.host
改为了 spring.data.redis.host
那么就产生了一个疑问:
🤔 Springboot 不同版本的配置文件怎么知道差异⁉️
顺藤摸瓜,我找到了这样一个文件 “spring-configuration-metadata.json”
这个文件的一部分内容如下
...
{
"name": "spring.data.redis.host",
"type": "java.lang.String",
"description": "Redis server host.",
"sourceType": "org.springframework.boot.autoconfigure.data.redis.RedisProperties",
"defaultValue": "localhost"
}
...
我们可以看到,这个文件是 Springboot 用来加载配置时的配置文件,我们可以清楚的看出来 redis 怎么配置
此外,还可以看到某些配置的默认值是什么样的,例如 redis 的默认链接地址就是 localhost
完美!
欢迎指正,以及点点关注~