好的做法? akka配置中的自定义属性(application.conf)

时间:2016-08-17 11:25:25

标签: scala akka typesafe typesafe-config hocon

我在scala中编写了akka应用程序,与应用程序相关的属性也将它与akka配置一起保存在application.conf中。我发现保留属性是合乎逻辑的。

如果这不是好习惯,我想知道它背后的推理,
例如我的一个属性是akka.remote.receivers = [akka.ssl.tcp://remote-system@localhost:2222/user/receiver1]

如何加载属性?

  • 默认属性我将其放在reference.conf
  • 中的main/resources
  • application.conf加载了后备default.conf

1 个答案:

答案 0 :(得分:1)

我认为将default.conf配置作为后备以及特定于部署环境/机器的application.conf很好。

您的reference.conf应该包含所有库(akka或任何其他库)的默认值。 然后,您的default.conf应该具有应用程序默认值(包括业务用例所需的默认值,如果有的话)。您的application.conf应仅覆盖default.confreference.conf所需的属性。

另外,我相信您的default.conf不应该覆盖任何reference.conf属性。任何覆盖都应该只在application.conf中完成。这有助于确保您只有一个覆盖位置,并且您不必经过多个位置来查看哪个conf覆盖了什么。

最后也是最重要的一点:

  

保持应用/服务/团队之间的一致性

如果您有多个应用,请确保遵循所有这些应用的决定过程。如果你选择使用配置的糟糕方式并不重要,但如果你在你的应用/服务中保持一致,那么它将会很痛苦。