当我们需要在工具类中获取yml配置的时候,由于变量是staic导致获取不到yml配置
因为spring加载静态方法比IOC早,所以不能直接使用@Value注解读取yml配置,读取结果是null。
@Component
public class TestUtil {
// 使用@Value注解读取yml配置的数据
@Value("${test.url}")
private String urlVlue;
// 设置静态成员变量用来接收@Value注入的值
private static String url;
// 使用@PostConstruct注解用于静态变量赋值。
@PostConstruct
public void setUrl() {
url=this.urlVlue;
}
// 测试方法静态变量是否被赋值
public static String testDemo() {
return url;
}
}
@RestController
public class GiteeLogin {
@GetMapping("/testUtil")
public String testUtil(){
return TestUtil.testDemo();
}
}
这样就可以获取到了