gpt4 book ai didi

Spring Boot - 如果未设置属性,则检测并终止?

转载 作者:行者123 更新时间:2023-12-02 06:30:13 26 4
gpt4 key购买 nike

如果未在任何地方设置所需属性(无论是在 application.properties 文件还是其他属性源中),Spring Boot Web 应用程序是否有任何方法可以在启动时中止?现在,如果该属性包含在另一个属性中,Spring Boot 似乎只是避免了替换。

例如,在我的 application.properties 文件中,我有以下行:

quartz.datasource.url=jdbc:hsqldb:${my.home}/database/my-jobstore

现在,如果“my.home”未在其他地方设置,Spring Boot 会将 url 按字面意思设置为“jdbc:hsqldb:${my.home}/database/my-jobstore” (无替代)。

如果未在其他地方设置属性 my.home,我希望应用程序无法启动。

最佳答案

要抛出友好的异常,只需在属性中放置默认的 null 值,然后在 afterProperty 方法中检查并抛出异常。

@Component
public static class ConfigurationGuard implements InitializingBean {

@Value("${my.home:#{null}}")
private String myHomeValue;

public void afterPropertiesSet() {
if (this.myHomeValue == null or this.myHomeValue.equals("${my.home}") {
throw new IllegalArgumentException("${my.home} must be configured");
}
}
}

关于Spring Boot - 如果未设置属性,则检测并终止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31528697/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com