当前位置: 首页 > 知识库问答 >
问题:

合并多个TypeSafe配置文件并仅在它们全部合并后解析

陆飞龙
2023-03-14

我正在编写测试代码来验证RESTful服务。我希望能够通过在执行测试之前简单地更改环境变量,将它指向我们的任何不同环境。

我希望能够合并三个不同的配置文件:

  • conf/env/default.conf-所有环境的默认配置值
  • conf/env/

我的想法是,我不想把所有内容都放在一个配置文件中,并冒着错误编辑导致配置项丢失的风险。因此,应该将它们分开,并让用户能够覆盖它们。

这里是它变得棘手的地方:default.conf将包括${引用}到中应该被覆盖的东西

我需要推迟解决,直到三者合并。我该怎么做?


共有1个答案

越望
2023-03-14

答案是使用ConfigFactory。parseResource()代替配置工厂。load()

这是完成的结果

private lazy val defaultConfig     = ConfigFactory.parseResources("conf/env/default.conf")
private lazy val environmentConfig = ConfigFactory.parseResources("conf/env/" + env + ".conf" )
private lazy val userConfig        = ConfigFactory.parseResources("application.conf")
private lazy val config = ConfigFactory.load()
                          .withFallback(userConfig)
                          .withFallback(environmentConfig)
                          .withFallback(defaultConfig)
                          .resolve()
 类似资料:
  • 问题内容: 我有一个要合并的文件数组。这是我尝试过的,但是没有用。 问题答案: 使用IOUtils可以做到这一点。看我的例子: 如果您不能使用IOUtils lib,请编写自己的实现。例:

  • 问题内容: 我正在尝试通过合并和压缩CSS和JS文件来优化网站性能。考虑到我所面临的实际情况,我的问题更多地是关于如何实现这一(具体)步骤的(尽管在其他开发人员中也应该是典型的)。 我的页面引用了多个CSS和JS文件,如下所示: 对于生产版本,我想将3个CSS文件合并为一个,并使用例如将其最小化。但是,然后,我需要更新所有需要这3个文件的页面,以引用刚缩小的CSS。这似乎容易出错(例如,您要在许多

  • 我想合并几个pdf文件。我该怎么做? 到目前为止,我得到的是这个。 我正在尝试使用这个程序包myokyawhtun/PDFMerger。 根据我尝试合并的文件的不同,错误也会有所不同。 如果我尝试合并同一个pdf两次,则会生成该文件,但全部为空 如果我尝试上面的代码,就会得到HTTP错误500 如果我尝试使用更多文件,就会出现tcpdi_解析器内存不足错误 底线是它似乎不起作用。 我已经尝试了其他

  • 问题内容: 我想合并两个或多个视频文件(它们可能是两个mp4或两个3gp或任何其他格式)。 问题答案: 您可以使用的最通用的工具是ffmpeg(如上面@Jeremy所述),但是在手机上使用它需要做一些工作。它也是LGPL许可的,其某些编码器(特别是x264)是GPL。 如果您要连接的两个文件都使用类似的编码,并且包含在从MP4派生的文件格式中(例如3GP),那么一个更简单的解决方案是使用纯Java

  • 问题内容: 如何使用Java合并两个WAV文件? 我试过了,但是没有正常工作,他们还有其他方法吗? 问题答案: 如果直接使用wav文件的字节,则可以在任何编程语言中使用相同的策略。对于此示例,我将假设两个源文件具有相同的比特率/数字通道,并且具有相同的长度/大小。(否则,您可能可以在开始合并之前对其进行编辑)。 首先看一下WAV规范,我在斯坦福课程网站上找到了一个很好的人: 常见的标头长度为44或

  • 我还需要在两个文件之间创建一个分页符,在新的组合rtf文件中。我访问了MS word,并能够将两个rtf文件组合在一起,但这只是创建了一个没有分页符的长rtf文件。 我有一个代码,但它只复制一个文件到另一个文件相同的方式,但我需要帮助调整这段代码,以便我可以复制两个文件到一个文件 如何在FileInputStream文件的顶部添加另一个FileInputStream对象,并在文件和对象之间设置分页