2009-08-26 70 views
9

我決定了我的Spring應用程序上下文文件的命名約定。我遇到了這個blog和幾個教程,建議applicationContext-<name>.xml是要走的路。我通常不會發現混合駱駝案件與破折號/下劃線。你見過的其他命名約定是什麼?Spring應用程序上下文XML的命名約定

編輯:我也想在與它們有關的包內嵌套上下文文件。例如,我的類/接口涉及到排序將在上下文文件com/mycompany/order/spring-context.xml。我會有一個頂級的applicationContext.xml,它將所有東西放在一起。建議?

+6

請注意製作非常精細的應用程序上下文文件(即每個軟件包)。將bean定義分佈在許多不同的文件中可能會成爲維護問題;很難看到「大畫面」。而且有時候你想要用於測試的相同豆類的替代線路和什麼。我認爲每個主要子系統或應用程序層的一個文件更有意義。當需要出現時,你總是可以將它們分開。 – 2009-08-26 17:13:57

回答

8

如果有一個約定,我想它是:存儲在包(不是默認包),以避免潛在的命名衝突

  1. 文件,也意味着我不必包括應用程序名稱,它是由包定義的。 「 - 」命名有全部小寫
  2. 文件名

我傾向於前加上「春天裏」我的Spring配置文件分開使得它更加明顯,他們使用的東西,但這個不一定強制性的。

但讓我說這將適用於我處理我的spring文件的方式,可能不適用於所有情況。

恕我直言applicationContext- <名>的.xml有點冗長(長),我喜歡所有小寫,因爲它是從我的Java源代碼區分他們,(我認爲)讓他們更容易閱讀。

4

對於Web MVC項目,我傾向於打破各種背景文件一起責任界限:

  • appname-dao.xml
  • appname-servlet.xml
  • appname-services.xml
  • appname-security.xml
1

無論是駱駝案件或' - '分開將工作e,只要你一致。我知道在我們的例子中,雖然我們沒有將上下文文件放在與代碼相同的目錄中,除非代碼本身是Spring知道的,在我們的例子中它不是。

我們有兩種情況,在我們使用maven 2的情況下,上下文文件位於resource/spring目錄中,其中資源是java源目錄的兄弟。在使用Maven 1的情況下,我們只需創建一個根彈簧包,並將環境放在那裏。這兩種情況都假定'正規'的java代碼。在Wars,EJB和OSGi包的情況下,這些文件通常駐留在meta-inf目錄中。

此外,我們不使用頂級應用程序上下文將所有內容「拉」在一起。我們只是用多個上下文文件創建一個上下文。我們發現用不同的方式進行測試要簡單得多,使用模擬對象的單元測試,沒有服務器的集成測試和部署到服務器的完整集成測試。在所有這些場景中,只需重新配置如何創建上下文,而不是爲每個場景創建「主」上下文。

2

我非常支持applicationContext-<name>.xml公約。

一般來說<name>指的是我們所有項目中的Maven模塊名稱。因此,每個需要Spring配置的模塊都有自己的applicationContext-<name>.xml文件。 「執行模塊」即代表進入應用程序入口點種類的一個模塊(WAR,EAR等)具有一個applicationContext.xml,它只導入所有的applicationContext-<name>.xml文件。

我們在所有的Maven/Spring項目中嚴格使用這個公約範圍的公約,它被證明是非常簡單,清晰和高效的。