Java技術路線圖
提示:前文對Java技術做了框架性的分析,包括Java SE、Java EE和Java ME,讓讀者了解了Java由哪些技術組成。為了系統(tǒng)地學習這些技術,本文將制定一套完整的Java技術學習路線。
從前文中我們已經(jīng)了解到,Java SE中包含了Java的基礎技術,Java EE中包含了網(wǎng)絡應用開發(fā)的各種技術,Java ME中包含了移動設備應用開發(fā)的各種技術,且Java SE是Java EE和Java ME的基礎,所以對于Java技術的學習,有兩條學習路線:
Java SE→Java EE:主要進行網(wǎng)絡應用開發(fā),是Java技術學習的一條完整路線,是基于Java EE的企業(yè)應用開發(fā),是目前Java應用的主要方向。
Java SE→Java ME:主要進行無線應用開發(fā),該技術路線相對簡單一些。
Java SEàJava EE的技術由低到高形成了一個完整的體系,是Java/Java EE工程師成長必備的技術體系,下面我們就根據(jù)Java SEàJava EE的技術體系制定一套完整的學習路線。
1、Java EE技術分類
根據(jù)Java EE技術的分層,我們可以將Java EE技術分為以下3類。
(1)Web應用技術
JDBC:JDBC(Java DataBase Connectivity)是一個基于標準SQL的數(shù)據(jù)庫訪問接口,主要用來連接數(shù)據(jù)庫和直接調用SQL命令執(zhí)行各種SQL語句和存儲過程。JDBC相當與Microsoft平臺中的ODBC。
Servlet:Servlet是Java平臺上的CGI技術。它在服務器端運行,用以動態(tài)生成Web頁面。與傳統(tǒng)的CGI和許多其他類似CGI的技術相比,Java Servlet具有更高的效率,它依靠線程的方式來支持并發(fā)訪問。
JSP(EL/JSTL):JSP(Java Server Page)是一種實現(xiàn)普通靜態(tài)HTML和動態(tài)頁面輸出混合編碼的技術,類似Microsoft ASP、PHP等技術。它借助內容和外觀表現(xiàn)的分離,使得Web頁面開發(fā)可以方便地劃分給頁面設計人員和程序員。在運行時態(tài),JSP將會被首先轉換成Servlet,它的效率和功能與Servlet相比沒有差別。
JavaBean:封裝業(yè)務邏輯的組件,可以實現(xiàn)業(yè)務組件的重用。
JSF:JSF(JavaServer Faces)是一種專用于構建Java Web應用的頁面組件技術,它集成了Servlet、JSP、JavaBean、EL、JSTL和自定義標簽等各種頁面技術,方便繪制豐富的頁面組件。
(2)企業(yè)級應用技術
EJB:EJB定義了一組可重用的組件Enterprise Beans。開發(fā)人員可以利用這些組件,像搭積木一樣建立分布式應用。EJB為它的開發(fā)人員代管了諸如安全性、遠程連接、生命周期管理及事務管理等技術環(huán)節(jié),簡化了商業(yè)邏輯的開發(fā)。
JNDI:JNDI(Java Naming and Directory Interface)用于定位分布式系統(tǒng)中的各種對象,這些對象包括EJB、數(shù)據(jù)庫驅動、JDBC數(shù)據(jù)源及消息連接等,還可以使用JNDI訪問各種特定的目錄服務,如LDAP、NDS和DNS等。
JMS:JMS消息服務是一組Java應用接口,它提供創(chuàng)建、發(fā)送、接收、讀取消息的服務,使得Java應用能夠和各種消息中間件進行通信,這些消息中間件包括IBM MQ-Series、Microsoft MSMQ及純Java的SonicMQ。
JavaMail:提供了一整套模擬郵件系統(tǒng)的抽象類。通過JavaMail,可以創(chuàng)建郵件或消息應用程序。
JAF:JavaMail利用JavaBeans Activation Framework(JAF)來處理MIME-編碼的郵件附件。MIME的字節(jié)流可以被轉換成Java對象,或者轉換自Java對象。
JTA:JTA提供了Java EE中處理事務的標準接口,它支持事務的開始、回滾和提交。同時在Java EE平臺上提供一個JTS(Java Transaction Service)作為標準的事務處理服務,開發(fā)人員可以使用JTA來使用JTS。
JACC:JACC(Java Authorization Service Provider Contract for Containers)在Java EE應用服務器和特定的授權認證服務器之間定義了一個連接的協(xié)約,以便將各種授權認證服務器插入到Java EE產(chǎn)品中去。
JAAS:JAAS(Java Authentication and Authorization Service)實現(xiàn)了一個Java版本的標準Pluggable Authentication Module(PAM)框架。它可用來進行用戶身份的鑒定,還能通過對用戶進行授權,實現(xiàn)基于用戶的訪問控制。
JCA:JCA(Java EE Connector Architecture)是Java EE體系架構的一部分,它提供了一套連接各種企業(yè)信息系統(tǒng)(包括ERP、SCM、CRM等)的體系架構,開發(fā)商只需要開發(fā)一套基于JCA的連接適配器,就能夠在任何Java EE服務器中連接并使用它。
JMX:JMX(Java Management Extensions)致力于解決分布式系統(tǒng)管理的問題,它是一種應用編程接口、可擴展對象和方法的集合體,可以跨越各種異構操作系統(tǒng)平臺、系統(tǒng)體系結構和網(wǎng)絡傳輸協(xié)議,開發(fā)無縫集成的面向系統(tǒng)、網(wǎng)絡和服務的應用。
(3)Web服務技術
JAX-RPC:通過使用JAX-RPC(Java API for XML-based RPC),已有的Java類或Java應用都能夠被重新包裝,并以Web Services的形式發(fā)布。JAX-RPC提供了將RPC參數(shù)(in/out)編碼和解碼的API,使開發(fā)人員可以方便地使用SOAP消息來完成RPC調用,EJB應用也可以使用JAX-RPC來包裝成Web服務。
SOA(SAAJ):SAAJ(SOAP with Attachemnts API for Java)是JAX-RPC的一個增強,為進行低層次的SOAP消息操縱提供了支持。
JAXR:JAXR(Java API for XML Registries)提供了與多種類型注冊服務進行交互的API。JAXR運行客戶端訪問與JAXR規(guī)范相兼容的Web Servcices,這里的Web Services即為注冊服務。一般來說,注冊服務總是以Web Services的形式運行的。
2、Java技術學習路線圖
Java EE技術,從簡單到復雜依次包括:Web應用技術、企業(yè)級應用技術、Web服務技術,除了這些技術之外,還有一些開源的框架技術,包括Web框架Struts/WebWork/Tapstry,業(yè)務層框架Spring,持久層框架Hibernate/iBATIS,這些也都是Java EE的應用技術。
這些技術雖然琳瑯滿目,但是也是層層遞進,逐步形成了Java EE工程師的學習技術路線。除了Java EE技術之外,還有Java基礎技術、數(shù)據(jù)庫基礎、網(wǎng)頁開發(fā)技術需要在前期進行掌握。在學習了所有的Java基礎、Java EE技術之后,再付諸于實踐,你就達到了架構師的水平,進而走上技術管理的道路,可以達到技術道路的峰頂——CTO。
為了層層遞進學習這些技術,我們?yōu)椋ㄗⅲ罕緢D和圖書拉頁上的圖近似,但略有差異)。
四.關于“Java高手真經(jīng)”
引言:為了幫助Java工程師的成長之路,我們編著了“Java高手真經(jīng)”系列圖書,該系列與Java技術學習路線層層對應,采用“快速原型法”(快速實現(xiàn)可復用的原型系統(tǒng))進行技術講解,讓讀者邊學邊練,逐步提高。
1、技術體系課程
根據(jù)Java技術學習路線圖,我們?yōu)槊恳徊降募夹g設置了一個專題課程,如下表所示。
2、學習目標:了解企業(yè)流行技術,實戰(zhàn)企業(yè)開發(fā)過程
大學生(或開發(fā)經(jīng)驗很少的程序員,下同)在畢業(yè)后去IT公司面試與就業(yè)時,面臨一個問題,就是大學所學的知識與IT公司的知識結構脫節(jié)。
目前大學通常開設如下的基本課程:數(shù)據(jù)庫原理、數(shù)據(jù)結構、操作系統(tǒng)、離散數(shù)學、軟件工程、C語言、Java語言。這些課程都是最基本的課程,通過學習這些課程,大學生能夠掌握IT開發(fā)的基礎理論知識,顯然在IT公司這些只是最基本的理論知識。
IT公司要么是進行產(chǎn)品研發(fā),要么是進行項目開發(fā),但是都是基于項目實踐的,它要求的技能都是應用型的,例如:Java方面的Struts、Hibernate、Spring、Eclipse,.NET方面的Visual Studio、ASP、ASP.NET,數(shù)據(jù)庫方面的Oracle、SQL Server、MySQL等。
因為大學里學習的知識與IT公司所要求的知識結構處于兩個不同的層面,在大學生參加就業(yè)面試時,往往出現(xiàn)面試者因為不熟悉IT公司的知識結構,而不能夠很好地體現(xiàn)出自己的能力。
因此,我們就設計了這個系列,在大學畢業(yè)生與IT公司之間架起一座橋梁,讓大學畢業(yè)生能夠在理論知識的基礎上,扎實學習IT公司的應用知識,進行技術與經(jīng)驗的面試前培訓。
3、課程特色:快速原型法
本系列圖書的講解采用快速原型法,原型的搭建不僅能夠實戰(zhàn)技術,還能夠作為后期擴展開發(fā)的基礎。
快速原型法(rapid prototyping)是近年來提出的一種以計算機為基礎的系統(tǒng)開發(fā)方法,它首先構造一個功能簡單的原型系統(tǒng),然后通過對原型系統(tǒng)逐步求精,不斷擴充完善得到最終的軟件系統(tǒng)。原型就是模型,而原型系統(tǒng)就是應用系統(tǒng)的模型。它是待構筑的實際系統(tǒng)的縮小比例模型,但是保留了實際系統(tǒng)的大部分性能。這個模型可在運行中被檢查、測試、修改,直到它的性能達到用戶需求為止。因而這個工作模型很快就能轉換成原樣的目標系統(tǒng)。
本系列的眾多技術都將會采用開發(fā)DEMO演示案例的形式進行講解,建立起原型系統(tǒng),不僅能夠鍛煉技術,還能夠進行擴展復用。
4、本系列適用讀者
本系列圖書面向讀者對象:Java軟件企業(yè)培訓,Java自學讀者。