问题描述
在创建了Spring Config的配置中心模块,在为客户端配置bootstrap.yml时候发现配置了bootstrap.yml并未生效,连接不到配置中心。上网查找资料发现从Spring Boot 2.4版本开始,配置文件加载方式进行了重构。bootstrap.yml也有配置的默认值变化,原来默认启用 true
现在变更为 false。如下所示:
- version:2.4之前
package org.springframework.cloud.bootstrap;
public class BootstrapApplicationListener implements ApplicationListener<ApplicationEnvironmentPreparedEvent>, Ordered {
public void onApplicationEvent(ApplicationEnvironmentPreparedEvent event) {
ConfigurableEnvironment environment = event.getEnvironment();
if ((Boolean)environment.getProperty("spring.cloud.bootstrap.enabled", Boolean.class, true)) {
}
}
}
- version:2.4.2
package org.springframework.cloud.util;
public abstract class PropertyUtils {
public static boolean bootstrapEnabled(Environment environment) {
return (Boolean)environment.getProperty("spring.cloud.bootstrap.enabled", Boolean.class, false) || MARKER_CLASS_EXISTS;
}
}
问题解决
在pom文件中引入依赖:spring-cloud-starter-bootstrap。即可启用bootstrap.yml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>4.0.x</version>
</dependency>