Spring Boot 在 SpringApplication.run 之前检查属性

标签 spring spring-boot properties lifecycle

我想检查 application.yml 中的某个属性,但我不知道如何完成。我认为这是不可能的,因为上下文还没有启动。

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

}

最佳答案

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

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。

关于Spring Boot 在 SpringApplication.run 之前检查属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45484916/

相关文章:

spring - 如何将 css 和 js 添加到 Spring Boot 应用程序中?

python - 模拟属性调用返回 MagicMock,而不是值

spring - Spring 怎么样 <task :scheduled> objects represented at runtime?

Spring Boot starter 社交 Facebook 添加权限

java - Spring MongoDB 按字符串搜索 id

java - 将现有缓存转换为 Spring @Cacheable 的映射

java - 无法使用 MongoDb GridFs 上传文件

javascript - 在 JavaScript 中动态重命名或设置对象名称

class - 复制 Groovy 类属性

java - 如何每隔一小时定期删除 session 数据?