以编程方式检测是否已读入外部配置文件?

Programmatically detecting if an external config file has been read in?

我们使用 grails.config.locations 从应用程序外部文件中提取(可选)设置。有没有一个好的方法来检测这个文件是否已加载,无论是在 Bootstrap.groovy 还是在 Config.groovy 本身?

Config.groovy 有这个:

grails.config.locations = [
  "file:${userHome}/.grails/${appName}-config.groovy"
]

很高兴知道 Grails 是否找到并读取了此文件。

您可能会在打开 Grails 调试模式时看到这一点,但您不想那样做。我正在使用以下策略。首先我检查文件是否存在:

 def externalConfigFile = "${userHome}/.grails/${appName}-config.groovy"
 if (new File(externalConfigFile).exists()) {
     grails.config.locations << "file:" + externalConfigFile
     log.info "External configuration file found at ${externalConfigFile} ..." 
 }

然后在文件本身中我只是记录它是 运行:

 log.info 'External config file was loaded.'

所以现在我可以在启动时的日志中看到我找到了一个外部配置文件,它是一个现有文件,并且该文件是 Grails 运行,所以它被加载了。

我还没有找到更好的东西。