2016-08-17 148 views
0

我在scala中編寫了akka應用程序,與應用程序相關的屬性也保存在application.conf以及akka配置中。我發現這是保持屬性的合乎邏輯的地方。是不錯的做法?在akka配置中定製屬性(application.conf)

如果不是很好的做法,我想知道這背後的原因,
例如我的財產之一是akka.remote.receivers = [akka.ssl.tcp://[email protected]:2222/user/receiver1]

我怎麼裝的屬性?

  • 默認屬性我把它放在reference.conf存在於main/resources
  • application.conf裝有後備default.conf

回答

1

我認爲這是好事,有一個default.conf配置作爲後備你application.conf它是沿特定於部署環境/機器。

您的reference.conf應該包含所有庫(akka或任何其他庫)的默認設置。 然後你的default.conf應該有應用程序默認值(包括業務用例需要的默認值)。您的application.conf應該只覆蓋default.confreference.conf所需的屬性。

此外我相信你的default.conf不應該覆蓋任何reference.conf屬性。任何重寫只能在application.conf中完成。這有助於確保您只有1個覆蓋區域,並且您不必經過多個位置來查看哪個覆蓋區域覆蓋了哪些區域。

最後,也是最重要的是:

保證各種應用程序/服務/支

如果一致性您有多個應用程序然後確保你跟隨決定過程爲所有的人。如果您選擇使用配置的不良方式,則無關緊要,但如果您的應用程序/服務不一致,那麼將會很痛苦。

+0

所以你得出結論認爲'application.conf'中的自定義屬性不是一個壞主意,不是嗎? –

+1

@SeetaRamayyaVadali:是的,我認爲這是application.conf的角色之一。我相信我們只是堅定我們的決定方法。 – faizan