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/
我正在尝试从我的@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/