问题记录_SpringCloud:版本升级后bootstrap.yml配置失效

问题描述

开发的Spring Alibaba Cloud项目,依照阿里巴巴官方提供的毕业依赖关系做了依赖版本的升级,升级后启动应用服务失败。发现bootstrap.yml中所配置的信息都没有生效。

image.png

问题的原因

网上搜了一下,从Spring Boot 2.4版本开始,配置文件加载方式进行了重构。

另外也有配置的默认值变化,原来默认启用 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;
    }
}

解决方案:传统的解决方案

image.png

方案1:引用依赖

pom.xml中引用 spring-cloud-starter-bootstrap 依赖

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-bootstrap</artifactId>
  <version>3.0.2</version>
</dependency>

可以在maven仓库中自行找对应的版本信息

方案2:指定运行参数

指定参数 spring.cloud.bootstrap.enabled 值为 true

IDEA中:
spring.cloud.bootstrap.enabled=true
--- 
命令行: 
java -jar -Dspring.cloud.bootstrap.enabled=true test.jar

image.png

配置完成后再次启动即可成功运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值