[英]Spring Boot- Fail to retrieve application.yml variable value using @Value
我正在尝试从@RestController检索存储在application.yml中的base_url。 但是,当我使用下面打印的代码时,它始终返回null。 有人可以让我知道为什么@Value(“ $ {base_url}”)总是返回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/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.