4

我有一個應用程序結構如下:應該在哪裏放置配置?

  • 主要
  • 服務
  • utils的

我做了一個類,讀取應用程序配置來自XML文件。問題在於它應該放在哪裏?

通過反思,我已經將它放在實用程序中,但實用程序類具有靜態方法並且是無狀態的,而此類使用Apache Commons XMLConfiguration的實例。我是否應該適應這些方法,以便將此實例限制在此類中方法的範圍內?

+0

您正在詢問有關XML或類的位置加載和公開的XML? – cherouvim 2010-05-16 08:15:34

+0

Cherouvim,我想知道加載XML的類應該按照應用程序劃分的方式進行。這是一個細節,但我想現在採用最佳做法,避免選擇不良習慣。 – 2010-05-16 08:28:48

回答

3

我假設項目是包,所以我會去包。

  • 主要包含應用程序及其配置的讀者
    • 配置
    • 日誌
  • 服務
  • utils

爲什麼?應用程序的配置,無論是否使用XML,是否基於諸如Spring之類的應用程序框架,都是其主要功能的一部分。啓動應用程序是應用程序的主要職責。所有的業務功能,它提供的所有閃亮功能都在域和服務層中實現。

你說得對,utils是關於靜態或類似的工具。由於應用程序的配置非常重要,因此我不會將其聲明爲實用程序。一個實用程序可以很容易地被另一個相同類型的實用程序替換(例如StringUtilStringUtilsIOUtils等,它們都具有非常類似的功能)

1

我希望你看看春天。可能對你來說似乎有點過度,但你會喜歡它。

+0

Spring已經被用於注入Service和DAO類的實例。它如何用於配置? – 2010-05-16 08:15:18

+0

使用屬性文件幷包含它們。然後您可以將所有可用屬性作爲變量使用,然後可以將其用於注入Bean中。我之前並沒有這樣做,但幾乎每個基於Spring的框架或應用都不喜歡這樣做。 – Daniel 2010-05-17 05:16:07

2

這取決於您使用i.g.的構建系統和應用程序類型。行家建議放置configfiles在src/main/resources

在WAR文件,你可以將它們放置在WEB-INF或WEB-INF/config中

根據你的項目結構,我建議推出一個文件夾的配置或資源,因爲幾乎每個人都希望他們在那裏。

2

如果您正在使用Spring,請查看Configuration Placeholders。你可以使用一個簡單的java屬性文件作爲你的配置屬性,並將其放置在你的類路徑(或任何其他位置)上。 Alsou可以創建自己的實現以使用不同形式的保存配置值(XML,數據庫等)

2

由於配置是一個交叉方面,它不會專門映射到這些層之一。將配置文件(XML或屬性)放入類路徑中,並通過Spring使用它來配置你的bean。

對於基於屬性的配置數據,PropertyPlaceholderConfigurer是一個很好的解決方案。