使用 application.properties 文件,我的 Spring Boot 应用程序可以使用其中的一些属性值。确保必须提供强制值的一种方法是为属性添加注释 @Value
。这样做的问题是,如果属性文件中不存在该属性值,则应用程序会严重失败。
我正在寻找一种更好、更不那么可怕的方式来打印有关“属性 A 丢失”的日志行,而不是整个堆栈跟踪。有没有办法在仍然使用 @Value 初始化属性的同时执行此操作?例如,属性A是强制性的,在应用程序退出之前会记录错误;属性 B 缺失但不是必需的,会记录警告并且应用程序继续。
最佳答案
如果您可以识别所有属性,那么您可以使用 @Postconstruct 在 Application 类中编写一个方法,并且在您的方法内部,您可以手动验证并记录它们
@Autowired
private Environment environment;
@PostConstruct
private void validateProperties() {
environment.getProperty(key);
.....
......
}
<小时/>
或者,您可以编写自定义EnvironmentPostProcessor,并迭代所有属性并记录为空/空的内容。
关于java - 当 Spring 属性无效时提供更好的日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58723526/