Spring 在 SpringApplication.run 之前启动检查 属性

Spring boot check property before SpringApplication.run

我想检查 application.yml 中的某个 属性,但我不知道如何完成。我觉得不可能,因为context还没有启动起来

public static void main(String[] args) {
    // want to check the value of my property
    SpringApplication.run(MyAppApplication.class, args);

}

您可以在主 class 中自由编写和执行打开 application.yml、读取和解析它并查找特定 属性 的方法。就在前面 Java。这就像任何其他 Java class:

public class MyAppApplication {

    public static void main(String[] args) {
        // want to check the value of my property
        boolean isValid = checkApplicationConfiguration("application.yml");
        if (isValid) {
            SpringApplication.run(MyAppApplication.class, args);
        } else {
            System.err.println("Invalid application.yml");
        }
    }

    private static boolean checkApplicationConfiguration(String yamlFileName) {
       // put the code to read, parse, and validate here.
    }
}

显然您可以使用 Jackson 来读取和解析 YAML。