在Spring属性无效时提供更好的日志记录

使用我的Spring Boot应用程序的application.properties文件可以在其中使用一些属性值。确保必须提供强制值的一种方法是为属性添加注释@Value。问题在于,如果属性文件中没有该属性值,则应用程序将严重失败。

我正在寻求一种更好的方法,而不是整个堆栈跟踪,而是打印出有关“缺少属性A”的日志行。在仍然使用@Value初始化属性的同时,有没有办法做到这一点?例如,属性A是必填项,在应用退出之前会记录错误;属性B缺失但不是必需属性,将记录警告并继续运行应用程序。

jita2009 回答:在Spring属性无效时提供更好的日志记录

如果可以识别所有属性,则可以使用@Postconstruct在Application类中编写一个方法,并且可以在方法内部手动验证并记录它们

@Autowired
    private Environment environment;

    @PostConstruct
    private void validateProperties() {

        environment.getProperty(key);
        .....
        ......
    }

或者,您可以编写自定义的 EnvironmentPostProcessor ,并迭代所有属性并记录为空/空的任何一个。

,

在使用spring-boot时,请考虑创建@ConfigurationProperties类,而不要使用@Value注释。

这样一来,您就可以使用Bean Validation进行验证,并且在同一类中,您可以实现接口InitializingBean并添加其他验证/日志消息。

Follow this link,请参阅Spring的官方文档,以详细了解@ConfigurationProperties

本文链接:https://www.f2er.com/3154819.html

大家都在问