Spring Boot 为什么环境变量在application.yml中不起作用?

slhcrj9b  于 7个月前  发布在  Spring
关注(0)|答案(1)|浏览(106)

我有以下代码

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        System.out.println("The Env Var is "+ ((System.getenv("DOCKER_IP") == null || System.getenv("DOCKER_IP").equals("")) ? "Not Defined" : System.getenv("DOCKER_IP")));
        SpringApplication.run(Application.class, args);
    }
}
spring:
  cassandra:
    keyspace-name: "test"
    local-datacenter: "datacenter1"
    port: 9042
    contact-points:
      - ${DOCKER_IP}

字符串
当我运行时,我会在控制台语句中看到IP
环境变量是192.168.56.101
但它试图使用127.0.0.1.
2023-10- 30 T14:10:50.073-04:00 WARN 22688 - [ restartedMain] c.d.o.d.internal.core.ContactPoints:忽略无效联系点${DOCKER_IP}:9042(未知主机${DOCKER_IP})Suppressed:io.netty.channel.AbstractChannel$AnnotedConnectException:连接拒绝:没有进一步的信息:/127.0.0.1:9042由:java.net.ConnectException:连接拒绝:没有进一步的信息
为什么会发生这种情况,我如何让它注入价值?
如果我硬编码的价值,它的作品,所以这是我目前的解决办法,但我需要这个工作没有硬编码。

6tr1vspr

6tr1vspr1#

我认为这可能是一个bug,另一种方法是覆盖默认的spring键

export SPRING-CASSANDRA-CONTACT-POINTS = 192.168.56.101

字符串

相关问题