微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

问题记录_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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐