Posted on 2010-02-23 17:20
xiaolang 閱讀(174)
評論(0) 編輯 收藏
在我們現在系統的代碼中,存在很多類似的代碼,這個接口大家都應該認得,是spring預留的接口
在所有的bean加載完畢后執行。
/**
* @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet()
*/
public void afterPropertiesSet() throws Exception {
1. 從其他系統加載數據
2.如果加載失敗,直接拋異常,系統不啟動
}
在這個過程中,如果被加載的系統掛掉了,這個系統暫時就啟動不了。
其實這是系統間的一種依賴,這樣就要求系統A啟動之后,系統B才能啟動,1,2個系統還好說,如果系統多
了系統的啟動順序就比較難以控制,發布的難度就會增大(當然,系統的啟動順序不只光跟這個有關系)。
大家這樣做的目的無非有(大家也可以補充):
1.性能方面的問題,某些數據相對來說是不經常變化的,當前系統只有很少一部分模塊會使用這部分數據,
只需要系統啟動的時候,到其他系統取一遍,放到內存中,減少遠程調用的次數;
2.當前系統確實需要依賴另外一個系統的數據,如果沒有這部分數據,系統將無法進行后續的業務;
對于第二種情況,確實是需要這樣做的,如果是第一種情況,我們可以這樣做
系統數據 a = null;
if(null == a){
a = 系統B的查詢結果
}
return a
如果有2個系統,這樣做的話,單純對第一種情況來說,這個2個系統是可以同時啟動的,從一定程度上
降低了系統間的依賴;但是如果在啟動時加載的話,就必須第一個系統成功的啟動起來。