Java學習——傳說中的13個規範

來源:互聯網
上載者:User

標籤:j2ee   java   規範   api文檔   

早就聽說J2EE有十三個規範,可是看完視頻我都沒有發現有什麼規範,這就讓我納悶了,都說學習java就是學習十三個規範,可是它到底是什麼呢?

原來十三個規範就是十三個API文檔,視頻裡講到的都是屬於API文檔的知識。那麼,讓我們一起來瞭解一下這傳說中的十三個規範吧。

  • 1.JDBC(Java Database Connectivity):

用於執行SQL語句的Java API,可以為多種關聯式資料庫提供統一訪問,它由一組用Java語言編寫的類和介面組成。
個人理解:跟微軟的ODBC很像,應該說是ODBC和ADO的結合,建立串連和發送SQL只用JDBC一個就行了,而ODBC只是建立一個串連,還需要用ADO來進行資料操作。ODBC把簡易功能跟進階功能放到了一起,相對來說比較難學,而JDBC盡量保證簡易功能的簡便性,同時又可以在需要的時候使用進階功能。

JDBC是Java應用程式與各種不同資料庫之間進行對話的方法的機制.簡單地說,它做了三件事:與資料庫建立串連–發送操作資料庫的語句–處理結果.

  • 2.JNDI(Java Name and Directory Interface):

JNDI是一組在Java應用中訪問命名和目錄服務的API.(命名服務將名稱和對象聯絡起來,我們即可用名稱訪問對象.JNDI允許把名稱同Java對象或資源關聯起來,建立邏輯關聯,而不必知道對象或資源的物理ID.)
個人理解: JNDI是為了對進階網路應用開發中使用的目錄基礎結構進行訪問。這個目錄其實是一個特殊的資料庫,提供了對儲存資料的快速存取,不象傳統的目錄服務訪問方式那樣必須提供不同的API介面去訪問不同的目錄服務(如:LDAP,NIS,ADS等),它統一了不同類型目錄訪問的介面。JDNI與JDBC都構建在抽象層上。

它提供了標準的獨立於命名系統的API,這些API構建在命名系統之上.這一層有助於將應用與實際資料來源分離,因此不管是訪問的LDAP,RMI還是DNS.也就是說,JNDI獨立於目錄服務的具體實現,只要有目錄的服務提供介面或驅動,就可以使用目錄.

  • 3.EJB(Enterprise JavaBean):

J在J2EE中,這個運行在一個獨立的伺服器上,並封裝了商務邏輯的組件就是EJB組件。其實就是把原來放到用戶端實現的代碼放到伺服器端,並依靠RMI進行通訊。

Javabean的任務是:一次性編寫,任何地方執行,任何地方重用。Javabean分為會話Bean(無工作階段狀態的Bean,有工作階段狀態的Bean)、實體Bean、訊息驅動Bean。

關於實體Bean,我感覺很像三層裡面的DAL+Entity。只不過,在這裡,Bean可以由容器實現,也可以由Bean自己實現。由容器實現,在使用過程中,感覺很像為某個空間設定資料來源,只需要通過自己選擇一下,語句就可以出來。而有Bean自己控制的Bean,感覺就很像三層裡面的DAL+Entiry了。

會話Bean,可以作為三層架構中的商務邏輯層出現。而訊息驅動Bean,更多的是用在了JMS(Java massage Service)中。

  • 4.RMI(Remote Method Invoke):

正如其名字所表示的那樣,RMI協議調用遠程對象上方法。它使用了序列化方式在用戶端和伺服器端傳遞資料。RMI是一種被EJB使用的更底層的協議。

**個人理解:**RMI是非常重要的底層技術,是分布式的基礎所在,剛剛提到的EJB就是建立在RMI的基礎之上的。相比Web Service這樣重量級的組件來說,RMI比較簡單,更適合一些小型應用的使用。

  • 5.Java IDL/CORBA:

Java介面定義語言/公用對象請求代理程式體繫結構在JavaIDL的支援下,開發人員可以將Java和CORBA整合在一起。

個人理解:他們可以建立Java對象並使之可在CORBA ORB中展開,或者他們還可以建立Java類並作為和其它ORB一起展開的CORBA對象的客戶。後一種方法提供了另外一種途徑,通過它Java可以被用於將新的應用和舊的系統相整合。

CORBA是物件導向標準的第一步,有了這個標準,軟體的實現與工作環境對使用者和開發人員不再重要,可以把精力更多地放在本地系統的實現與最佳化上。

  • 6.JSP(Java Server Pages):

JSP頁面=HTML+Java,其根本是一個簡化的Servlet設計. 伺服器在頁面被用戶端請求後,對這些Java代碼進行處理,然後將執行結果連同原HTML代碼產生的新HTML頁面返回給用戶端瀏覽器
個人理解:JSP跟ASP很像,ASP是在HTML的基礎上加入了.Net代碼,而JSP是在HTML的基礎上加入了Java代碼,它們都是動態網頁,而JSP最大的優勢就是跨平台,不但可以在Windows平台運行,還可以在Linux或者其他動作系統上運行。

  • 7.Java Servlet:

Servlet是一種伺服器端的Java應用程式,具有獨立於平台和協議的特性,可以產生動態Web頁面。它擔當客戶請求(Web瀏覽器或其他HTTP客戶程式)與伺服器響應(HTTP伺服器上的資料庫或應用程式)的中介層。

Servlet是位 於Web 服務器內部的伺服器端的Java應用程式,與傳統的從命令列啟動的Java應用程式不同,Servlet由Web伺服器進行載入,該Web伺服器必須包含支援Servlet的Java虛擬機器。

個人理解:Servlets提供的功能大部分JSP相同,它採用的是一個有點不同的方法。
JSP中大部分是HTML代碼,其中只有少量的Java代碼,而servlets則相反,它完全使用Java編寫,並且可以產生HTML代碼。JSP並沒有增加任何本質上不能用Servlet實現的功能。但是,在JSP中編寫靜態HTML更加方便,不必再用println語句來輸出每一行HTML代碼。
更重要的是,藉助內容和外觀的分離,頁面製作中不同性質的任務可以方便地分開。Servlet跟微軟的一般處理常式很像。

  • 8.XML(Extensible Markup Language):

XML是一種可以用來定義其它標記語言的語言。它被用來在不同的商務過程中共用資料。XML的發展和Java是相互獨立的,但是,它和Java具有的相同目標正是平台獨立性。通過將Java和XML的組合,您可以得到一個完美的具有平 台獨立性的解決方案。
個人理解:XML是一個用來定義其它標記語言的的語言。它可被用作商業之間的資料共用。XML的發展和Java是相互獨立的。不過,它和Java具有的相同目標就是跨平台。通過將Java與XML結合,我們可以得到一個完全平台無關的解決方案。

9.JMS(Java Message Service):

JMS即JavaMessage Service(Java Message Service)應用程式介面是一個Java平台中關於面向訊息中介軟體(MOM)的API,用於在兩個應用程式之間,或分布式系統中發送訊息,進行非同步通訊。JavaMessage Service是一個與具體平台無關的API,絕大多數MOM供應商都對JMS提供支援。

個人理解: 點對點互發,訊息廣播。還可以這樣設定:如果對方沒有線上,那麼訊息會存在伺服器,待對方上線後,發送給對方。其實這個自己新增個表,其實也可以實現,但是你不好實現的是最佳化,如果面對大資料量,你無法保證是否會像你使用JMS那樣高效。

  • 10.JTA(Java Transaction Architecture):

Java事務API。允許應用程式執行分散式交易處理——在兩個或多個網路電腦資源上訪問並且更新資料。JDBC驅動程式的JTA支援極大地增強了資料訪問能力。事務最簡單最直接的目的就是保證資料的有效性,資料的一致性。
個人理解: JTA事務比JDBC事務更強大。一個JTA事務可以有多個參與者,而一個JDBC事務則被限定在一個單一的資料庫連接。

  • 11.JTS(Java Transaction Service):

JTS是CORBA OTS事務監控的基本的實現。JTS規定了交易管理員的實現方式。該交易管理員是在高層支援Java Transaction API (JTA)規範,並且在較底層實現OMG OTSspecification的Java映像。JTS交易管理員為應用伺服器、資源管理員、獨立的應用以及通訊資源管理員提供了事務服務。

  • 12.JavaMail:

JavaMail是用於存取郵件伺服器的API,它提供了一套郵件伺服器的抽象類別。不僅支援SMTP伺服器,也支援IMAP伺服器。

  • 13.JAF(JavaBeans Activation Framework):

JAF是一個專用的資料處理架構,它用於封裝資料,並為應用程式提供訪問和操作資料的介面.也就是說,JAF讓Java程式知道怎麼對一個資料來源進行查看,編輯,列印等.

JavaMail利用JAF來處理MIME編碼的郵件附件。MIME的位元組流可以被轉換成Java對象,或者轉換自Java對象。大多數應用都可以不需要直接使用JAF。

- 總結:

J2EE的基石是EJB,它是Java中的伺服器端組件標準。
13個規範解決了背景中提到的問題,好比全世界製造軸承的標準是一樣的,只有遵循標準自己生產的軸承才能被全世界使用。那麼這些規範之間的關係是什麼樣的呢,它們到底怎麼運轉呢?
讓我來看下邊這張圖

十三規範讓我們見識到了java的強大,不得不說寫這些規範還是比較抽象的。我們目前對於J2EE的理解還非常的膚淺,還需要在今後的學習與實踐中不斷的深入,繼續學習。

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

Java學習——傳說中的13個規範

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.