【J2EE】--讓你不能拒絕的J2EE13核心規範

ZeroWM發表於2015-09-28


背景

  資料庫連線,郵件服務、事務處理等,這些是企業級開發通用的模組。為了提高開發的效率,各個公司抽象出了自己的通用模組。這些服務性的軟體系列成為中介軟體。不同的公司生產不同的中介軟體,使用者無法將各個公司的中介軟體組裝到一起。於是提出標準的概念。這樣就有了J2EE十三個規範。有了規範,不同的公司都可以按照各自的方式去實現公共介面,實現了中介軟體和專案業務邏輯的解耦和,充分的體系了Java物件導向的思想。

  我個人的理解如下,如果郵箱服務類是A公司開發的,資料庫連線類是C公司開發的,J2EE規範充當的角色就是,制定統一的介面(介面名稱,方法,引數,返回值),具體的郵箱服務、資料庫連線類裡面的具體實現由各個公司來書寫。





J2EE巨集觀一覽


  

       Web瀏覽器發出頁面請求,直接訪問到的是web容器表示層,JSP,Servlet。


JSP(Java Server Pages)頁面由HTML程式碼和嵌入其中的Java程式碼組成。伺服器在頁面被客戶端請求後對這些Java程式碼進行處理,然後將生成的HTML頁面返回給客戶端瀏覽器。它的原理跟ASP(Active Server Pages)基本類似,ASP包含HTML、元件和資料庫訪問功能,可以根據客戶端請求形成HTML頁面返回給客戶端瀏覽器。


Servlet是一種小型的Java程式,它擴充套件了web伺服器的功能。它跟JSP都能作為View層使用,但是不同的是JSP是HTML和Java語言的結合,Servlet是純Java程式碼,可以由Java程式碼生成HTML語言。Servlet讓我想到了MVC模式中的Controller,之前在做.NET專案的時候,在Controller中是完全可以拼接前臺頁面的。


鑑於讓頁面表示和業務邏輯解耦的思想,與其讓JSP或Servlet單獨作業,更好的是二者系統合作,JSP主要負責頁面顯示,Servlet負責整合Java業務。

         

          EJB(Enterprise Java Bean)容器在圖中充當業務邏輯層。下圖是對EJB容器的具體介紹。

SessionBean主要用來實現業務邏輯,可以分有狀態和無狀態兩種。

一般通過EntityBean+JDBC(JavaDatabase Connectivity)實現資料庫的訪問。EntityBean是域模型物件,用於實現O/M對映,負責將資料庫中的表對映為記憶體中的實體物件上,根據跟之前.NET專案中用到的EF類似。

訊息驅動Bean是唯一一種必須實現一個業務介面的Bean,主要通過JMS來實現。

JDBC(Java Database Connectivity)為訪問不同的資料庫提供統一的路徑,像ODBC一樣。

JMS(Java Message Service)用於和麵向物件的中介軟體相互通訊的應用程式介面。

JNDI(JavaName and Directory Interface)API被用於執行名字和目錄服務.它提供了一致的模型來存取和操作企業級的資源DNS和LDAP,本地檔案系統,或應用伺服器中的物件.

RMI(RemoteMethod Invoke):遠端方法請求,RMI協議呼叫遠端物件上的方法,它使用了序列化的方式在客戶端和伺服器之間傳遞資料。RMI是一種被EJB使用的更底層的協議。

                                                                  EJB容器



                                                             訊息驅動Bean的實現原理

  

              還有幾個規範,我把他們的概念放到這裡,後續的學習再回頭加深理解。

XML(Extensible Markup Language)是一種可以用來定其它標記語言的語言。用於在不同的商務過程中共享資料。也就是我們做專案過程中用到的配置檔案。

JavaIDL/CORBA:它們可以建立Java物件並使之可在CORBAORB中展開,或者他們還可以建立Java類並和其它ORB一起展開的CORBA物件客戶.後一種方法提供了另外一種途徑,通過它Java可以被用於將你的新的應用程式和舊的系統集合在一起。


跟郵件相關的:

JavaMail:用於存取伺服器的API,提供了一套郵件伺服器的抽象類。支援SMTP,IMAP伺服器。

JAF(JavaBeansActivation Framework):Java利用JAF來處理MIME編碼的郵件附件。


跟事務相關的:

JTA(JavaTransaction API):定義了一種標準API,應用程式由此可以訪問各種事務監控。

JTS(JavaTransaction Service):CORBAOTS事務監控的基本實現。



總結

  對於J2EE的總結,僅僅是一個開始。通過總結,讓我發現J2EE東西好多啊,需要後面通過專案把知識消化,然後再去擴充。





相關文章