2011-04-02 53 views
1

我有一個基於Spring的小應用程序,我的一個類需要額外的配置數據。通常我會通過PropertyPlaceholderConfigurer解決這個問題並通過設置。是否應該從Spring配置注入所有應用程序設置?

在我的情況下,目標類沒有在spring.xml中配置,它可能需要一些重構來將目標類的父類的設置傳遞出去,所以如果可以使目標類(或某些類)相關類)讀取外部屬性文件。

這是一個很好的方法還是違反了Spring的原則?或者換句話說:應該從應用程序配置(spring.xml)注入所有外部配置,還是在應用程序生命週期中稍後閱讀它?

回答

3

遺留代碼是許多Spring應用程序的現實,所以你必須對這些事情保持現實。有時候,正如你所說的,即使你願意,也可以注入的所有內容

由於IoC的主要優點之一便於測試,因此我的建議是讓您的課堂使用也可輕鬆測試的機制取得其配置。換句話說 - 不要使用靜態來獲取你的配置。

因此,只要您仍然可以獲得IoC帶來的一些優勢,我就不會太在意「沒有彈性」的東西。

0

我不知道這是如何處理的一般。我目前正在開發一個項目,在那裏我們實現Spring來配置不同的組件,並讓它們在Spring中實例化。在我們開始使用Spring之前,我們需要確保主程序創建所有組件的順序。除此之外,我們仍然使用app.config來指定其他信息,如超時時間,數據庫的連接字符串等。一個靜態組件用於讀取程序啓動時的配置,其他組件可以引用該實例以獲取所需信息。

希望這回答你的問題。

相關問題