首页 > 解决方案 > Spring Boot 配置文件和@Value

问题描述

不知道我在这里做错了什么,但我有以下值指向微服务的 URL。

@Value("${url.dispenseRoot}")
private String dispenseRoot;

我正在我的 application.yml 文件中设置我的开发配置文件,例如:

---
spring:
  datasource:
    url: jdbc:h2:mem:test
    username: sa
    password: sa
    driverClassName: org.h2.Driver
  config:
    activate:
      on-profile: dev

mpesa:
  host: sandbox.safaricom.co.ke
  port: 443

url:
  dispenseRoot: https://localhost:8844/dispense
---

然后,根据我在这里的回答:从 IntelliJ 运行时如何激活 Spring Boot 配置文件?,我在运行配置上设置了 spring boot 配置文件,如下所示:

在此处输入图像描述

然后运行以下测试来测试我的配置:

@SpringBootTest
public class PaymentApplicationTests {

    @Test
    public void contextLoads() {
    }

}

我得到:

    ... 111 more
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'url.dispenseRoot' in value "${url.dispenseRoot}"

现在,如果我复制并粘贴以下行:

url:
  dispenseRoot: https://localhost:8844/dispense

在我的个人资料上方,我正在设置适用于所有内容的常规设置,它工作正常。因此,我确定它与配置文件有关,但我无法弄清楚它是什么。

请指教...

标签: javaspring-bootprofile

解决方案


推荐阅读