在乙個j2ee中,當專案的主要業務邏輯要劃分為多個模組時(及要劃分出多個ejb的jar包),會遇到模組之間雙向依賴的情況。下面按照我在專案的實際情況為例來說明。
我所在的專案是乙個鋼鐵公司的生產控制系統(mes)。其中有兩個模組(計畫管理和庫管理)分別以ejb的專案來開發, 在計畫管理模組中有乙個制定生產計畫的功能,這個功能中會查詢庫存資訊。而庫存資訊的獲取要使用到呼叫庫管理模組的實體類或服務方法。這個時候計畫管理模組就會依賴於庫管理模組。
在庫管理模組中有追蹤查詢庫存中各種物品是由哪個計畫號下達的功能,這個功能中獲取計畫號下的相應計畫資訊。又會依賴計畫管理模組。這時就產生了專案模組之間的雙向依賴,如圖所示:
如果當這兩個模組之間會有很多的相互呼叫,則考慮將這兩個模組合併為乙個專案。但是在現實中專案往往不會接受這樣乙個結果。(如產品化或單獨熱部署等各種原因。)所以,我們就需要考慮去掉乙個方向的依賴,最終使模組之間的依賴是單向的。
一般情況下模組之間的依賴分為兩種情況:
1.乙個就是依賴其它模組的業務方法
當是依賴其它模組的業務方法的時候,我們可以考慮將這個業務方法中的業務邏輯移到自己模組中的業務方法中。
2.另乙個是依賴其它模組的實體類
當是依賴其它模組的實體類時,我們也可以考慮將這個實體類移動到自己模組中。
除此之外還有另乙個方法,就是查詢的實體結果使用陣列的方式。這樣就不會依賴其它模組的實體了,但這樣又會造成**可讀性差難以維護的問題。
如果系統中的模組太多時,可以考慮將模組之間雙向依賴的業務方法和實體類統一放到乙個公共模組中,這樣所有的雙向依賴問題就解決了。
J2EE中的路徑問題
解決方案 採用絕對路徑,但為了解決不同部署方式的差別,在所有非 struts 標籤的路徑前加 如原路徑為 images title.gif 改為 images title.gif 的作用是取出部署的應用程式名,這樣不管如何部署,所用路徑都是正確的。缺點 操作不便,其他工具無法正確解釋 採用相對路徑,...
j2ee的web專案開發中,效率問題
在j2ee的web專案的開發中,很多聲音都在提效率,效率。在沒有做資料遷移之前,我感覺很奇怪,為什麼那麼多人都在提效率問題?我怎麼從來沒感覺出效率有什麼問題啊?使用者登入 儲存 修改,都很順暢,瞬間或者幾秒鐘就完成了,沒有效率問題啊。在搞了資料遷移之後才遇到效率問題,比如寫入10000條或者更多的資...
J2EE專案架構最佳實踐
基於專案的最差實踐,可以總結出一套專案架構的最佳實踐原則以便今後的復用和改進。原則1.時間總是非常緊,需求總是在變化,技術問題總是層出不窮,千萬不要認為軟體工程的問題不會發生在規範的公司和專案。每次一定要根據自己所處的位置作出正確的評估,比如專案經理做評估要留出足夠的時間buffer,開發人員應當正...