scala-加载打包在 jar 中的属性文件时出错

scala- error loading a properties file packed inside jar

这是一个新手问题,我看了很多,但我有点困惑。

我从 Jar 中传递了一个属性文件,读取了配置,一切正常。

我想添加一个尝试 catch.I 尝试了这个但是它不起作用,因为如果属性文件不存在,加载不会产生异常。因此3个问题:

您的代码总体上看起来没问题。

ConfigFactory.load("resource.config") 将像处理空资源一样处理缺失的资源。结果你得到一个空的 Config。所以,try-catch-block 没有意义。

您通常会像这样指定后备配置:

val appProps = ConfigFactory.load(
  "application.properties"
).withFallBack(
   ConfigFactory.load()
)

编辑:

句子

As a result you get an empty Config

有些不完整。 ConfigFactory.load(resourceBaseName: String) 应用 defaultReference() 和 defaultOverrides()。因此,您生成的 Config 对象可能包含一些通用环境数据并且不为空。

据我所知,检查资源是否存在并在不存在时发出错误消息的最佳选择是自己查找资源:

  val configFile = "application.properties"
  val config = Option(getClass.getClassLoader.getResource(configFile)).fold {
    println(s"Config not found!")
    ConfigFactory.load()
  } { resource =>
    ConfigFactory.load(configFile)
  }