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

时间:2017-08-03 12:57:47

标签: 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);

}

1 个答案:

答案 0 :(得分:2)

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

services.AddSingleton<IObjectModelValidator>(s =>
            {
                var options = s.GetRequiredService<IOptions<MvcOptions>>().Value;
                var modelMetadataProvider = s.GetRequiredService<IModelMetadataProvider>();
                return new EnhancedObjectModelValidator(modelMetadataProvider, options.ModelValidatorProviders);
            });

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