角色實戰(zhàn) 假設(shè)有一個企業(yè)應(yīng)用程序,該應(yīng)用程序包含一個 Web 應(yīng)用程序,還有一個負責業(yè)務(wù)邏輯和持久性的 EJB 組件。開發(fā)這個應(yīng)用程序的組件供給商可能有許多,但是在許多情況下,可以由一個人來承擔全部職責。組件可以包含數(shù)據(jù)傳輸對象(一個 JAR 文件)、EJB 接口(另一個 JAR 文件)、EJB 實現(xiàn)本身(另一個 JAR 文件),以及用戶界面組件 —— servlet、jsp、HTML 頁面和其他靜態(tài) Web 內(nèi)容。用戶界面組件被進一步打包成 Web 應(yīng)用程序,其中包含 servlet 類、JSP 文件、靜態(tài)內(nèi)容,以及其他必需組件的 JAR(包括 EJB 接口)。
這聽起來似乎用到的組件太多了,幾乎超出了人的想像范圍,尤其是在考慮構(gòu)建一個典型的 Web 應(yīng)用程序需要使用多少個 JAR 文件的時候。但是,重要的是熟悉到在這里必須小心地治理依靠性。接口和傳輸對象是 Web 應(yīng)用程序和 EJB 實現(xiàn)可以依靠的對象,但是依靠性的方向應(yīng)該是相同的;還要避免產(chǎn)生循環(huán)依靠。J2EE 組件(例如 WAR 文件和 EJB JAR 文件)必須在它們的部署單元之外聲明它們在資源上的依靠性。
應(yīng)用程序組裝者負責把 Web 應(yīng)用程序中的依靠內(nèi)容包含進來,并把它們整體打包成單個企業(yè)應(yīng)用程序。工具在這里幫助很大。IDE 可以協(xié)助創(chuàng)建反映模塊和 JAR 依靠性的項目結(jié)構(gòu),還答應(yīng)您隨意指定包含或排除的模塊。