我在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
答案 0 :(得分:1)
我认为将default.conf
配置作为后备以及特定于部署环境/机器的application.conf
很好。
您的reference.conf
应该包含所有库(akka或任何其他库)的默认值。
然后,您的default.conf
应该具有应用程序默认值(包括业务用例所需的默认值,如果有的话)。您的application.conf
应仅覆盖default.conf
和reference.conf
所需的属性。
另外,我相信您的default.conf
不应该覆盖任何reference.conf
属性。任何覆盖都应该只在application.conf
中完成。这有助于确保您只有一个覆盖位置,并且您不必经过多个位置来查看哪个conf覆盖了什么。
最后也是最重要的一点:
保持应用/服务/团队之间的一致性
如果您有多个应用,请确保遵循所有这些应用的决定过程。如果你选择使用配置的糟糕方式并不重要,但如果你在你的应用/服务中保持一致,那么它将会很痛苦。