yml中某些配置不生效的解决方案
2018-05-09 本文已影响160人
小尘哥
起因
将springboot项目的properties配置文件改为yml之后redis死活连不上了。
找问题
springboot的配置文件有两种方式:properties和yml,之前properties时候是没有任何问题的,那么来看一下yml的配置:
spring:
# Redis数据库索引(默认为0)
redis:
#数据库索引
database: 0
host: 127.0.0.1
port: 6379
password: 123456789
jedis:
pool:
#最大连接数
max-active: 8
#最大阻塞等待时间(负数表示没限制)
max-wait: -1ms
#最大空闲
max-idle: 8
#最小空闲
min-idle: 0
timeout: 300s
# THYMELEAF (ThymeleafAutoConfiguration)
spring:
thymeleaf:
cache: false
check-template: true
check-template-location: true
enabled: true
encoding: utf-8
#去掉thymeleaf的严格的模板校验
mode: LEGACYHTML5
prefix: classpath:/templates/
suffix: .html
excluded-view-names:
spring:
groovy:
template:
cache: false
看起来貌似也没什么问题,bug,debug跟源码代码发现redis配置均未起作用,但是有个神奇的地方,如果把下面的thymeleaf和groovy都删掉,redis配置就起作用了,推测肯定是某个地方冲突了,仔细瞅,上面配置文件中有三个“spring:”,删掉下面两个“spring:”,果然一切ok。
解决
保证不能有重复的一级节点。
也许只是简单的知识点,但是只有踩过,才知道坑深,此坑爬了三个小时,希望小伙伴们不要再爬此坑······
正确配置如下
# THYMELEAF (ThymeleafAutoConfiguration)
spring:
thymeleaf:
cache: false
check-template: true
check-template-location: true
enabled: true
encoding: utf-8
#去掉thymeleaf的严格的模板校验
mode: LEGACYHTML5
prefix: classpath:/templates/
suffix: .html
excluded-view-names:
groovy:
template:
cache: false
# Redis数据库索引(默认为0)
redis:
#数据库索引
database: 0
host: 127.0.0.1
port: 6379
password: 123456789
jedis:
pool:
#最大连接数
max-active: 8
#最大阻塞等待时间(负数表示没限制)
max-wait: -1ms
#最大空闲
max-idle: 8
#最小空闲
min-idle: 0
timeout: 300s