Spring 启动 - 使用@Value 检索 application.yml 变量值失败

Spring Boot- Fail to retrieve application.yml variable value using @Value

我正在尝试从我的@RestController 中检索存储在 application.yml 中的 base_url。但是,当我使用下面打印的代码时,它总是 return null。有人可以告诉我为什么 @Value("${base_url}") 总是 return null 吗?提前致谢。

休息控制器:

@RestController
public class AccountController {

    @Value("${company.department.base_url}")
    static String base_url;

    @RequestMapping(method = RequestMethod.GET, value = "/getAccount")
    public ResponseEntity<Object> getAccount() {
        //getAccountCode
    }
}

application.yml:

company:
  department:
    base_url: https://www.test.com

TestApplication.java

@SpringBootApplication
public class TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }
}

你不能使用静态字段,那么你应该这样做:

@Value("${company.department.base_url}")
String base_url;

或者尝试解决方法: https://www.mkyong.com/spring/spring-inject-a-value-into-static-variables/

我认为@Value 不能用于静态字段。一种解决方法是使用基于 setter 的非静态注入来设置它。

@RestController
public class AccountController {


    static String base_url;

    @Value("${company.department.base_url}")
    public void setBaseUrl(String baseUrl){
        this.base_url = baseUrl
    }
 }

参考:https://www.mkyong.com/spring/spring-inject-a-value-into-static-variables/