java工具类static静态方法读取yml配置

发布时间 2023-07-04 15:26:09作者: 江南大才子

当我们需要在工具类中获取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();
    }
}

这样就可以获取到了