2016-04-26 61 views
1

我正在用Spring MVC編寫一個應用程序,我希望可以使用屬性文件進行配置。我看着春天的UTIL命名空間,發現這個:在Spring中管理屬性的最佳方式

<util:properties id="MyProperties" location="propertiesPath" /> 

這一點,我可以標註我的班現場簡單地

@Value("myProperty") 

,並有物業乾脆注入。所以,閱讀你的屬性非常簡單。但是當你必須保存它們時,它並不那麼直觀。

我在如何正確地做了不少問題,迷迷糊糊的,我認爲這代表着最好的,我想說:Updating a properties file injected by Spring to include a last run timestamp

我的問題是:爲什麼在春天是如此不易保存屬性?我做錯了嗎?在這一點上,我甚至想知道以這種方式保存屬性是一種好的做法,或者如果我應該使用數據庫。

從甲骨文,我可以讀到:

Properties類表示了一個持久的屬性集。這些屬性可以保存到流中或從流中加載。

但春天似乎讓用戶輕鬆只是其中之一。請賜教。

謝謝。

回答

1

春天在很大程度上參與了創建應用程序的靜態的,不變的,結構,並沒有真正參與交易處理或業務邏輯。通常它定義瞭如何處理交易,但通常不涉及處理本身。我們經常談論領域模型和架構的分離 - 春天是關於架構。

將某些東西寫出到某種類型的存儲中,向磁盤文件說屬性是事務性邏輯(即使您不需要顯式事務來執行此操作)。這將是您系統的最終用戶功能之一,而不是體系結構的一部分 - 這將是一項功能(即使最終用戶在本例中是系統管理員)。 Spring對這種行爲幾乎沒有支持 - 就像它很少支持存儲有關應用程序上下文的動態更改的信息一樣。

+0

我真的很喜歡你的答案,因爲它清楚地解釋了Sping在Web應用程序中的角色並改變了我的思維定勢。我真的想讀更多。謝謝。 – Aurasphere

相關問題