我配置每environemnt我的春天應用程序,我來到了以下問題:春天每環境配置,其中PropertyPlaceholder是不夠的
只要環境的變化只是bean的構造函數/屬性值我很好的利用PropertyPlaceholderConfigurer
。
現在我面對的事實是,bean結構本身在不同的環境中發生變化。例如。在測試環境中,我定義了單一的bean,在生產環境中,我定義了另一個需要屬性類型爲List的屬性的bean - 換言之,PropertyPlaceholderConfigurer
不能真正幫助。
我去定義每個環境彈簧XML配置通過<import resource="myDefinition-${Environment}.xml />
導入它。這也很好,直到我想要它可選。我在那裏定義的資源是@Autowired(required = false)
到另一個bean。
由於<import ... />
不允許可選屬性(如可在此處看到的:https://jira.springsource.org/browse/SPR-1624)我最終爲environents提供了空的.xml配置文件,而我不需要該bean。這有點不方便。
任何人都可以建議在這種情況下的最佳做法?
謝謝。
恕我直言,使用不同的bean進行測試和prod意味着在測試和產品中運行不同的代碼,這在我看來不是一個好主意。你不能使用一個具有list屬性的bean來測試嗎? – beny23 2012-03-07 10:12:23
如果你需要同樣的列表屬性,但是在TEST中,你使用PROD中的1個項目很多項目?我認爲這個問題有點泛泛,你不可能在所有環境中都有完全相同的bean定義(就我的經驗而言)。 – 2012-03-07 13:05:21
在這種情況下,爲什麼你不會有一個列表只有1項TEST? – beny23 2012-03-07 13:26:48