首先,明確一件事情:
Java 技術既是一種高級的面向對象的編程語言,也是一個平臺。
下面的文章來自:http://www.fedorachina.cn/index.php/topic,53.0.html#top
“五一”上街買了一本《精通Eclipse Web開發(fā)——Java體系結構、工具、框架及整合應用》,回來大概看了一下,感覺不錯。于是,把其中的一些概念性的東西總結出來,希望對初學者有益。
一、Eclpise的歷史 Eclipse最初是IBM公司的一個軟件產品,IBM為它投入了4000萬美元的巨資。2001年11月IBM向世界宣布了兩件事,第一件是創(chuàng)建開源項目,即IBM將Eclipse捐贈給開源社區(qū)(真有錢啊

);
另外一件事是成立 Eclipse 協(xié)會(Eclipse Consortium),這個協(xié)會由一些成員公司組成,主要任務是支持并促進
Eclipse 開源項目。剛開始的時候,Eclipse的聲譽并不好,受到業(yè)界的很多批評。但到了2003年3月,Eclipse
2.1版發(fā)布的時候,引起了業(yè)界的轟動。下載Eclipse的人蜂擁而至,甚至導致了服務器擁塞。
Eclipse具有出色而有獨創(chuàng)性的平臺特性,吸引了眾多公司加入它的平臺,包括Oracle、HP、Sybase、Borland和Redhat等等。
二、Eclipse項目 http://www.eclipse.org/
Eclipse平臺是一個開放的集成開發(fā)工具,擁有強大的開發(fā)功能。它是建立在插件機制(發(fā)現(xiàn)新查插件、集成插件和運行插件)之上的。Eclipse平臺
可以為開發(fā)者提供將各種工具無縫集成的功能,并為集成軟件開發(fā)工具的開發(fā)、構造和運行提供基礎模塊,擁有一整套的公共服務集。
Eclipse軟件開發(fā)工具箱(簡稱SDK)是由Eclipse項目的3個子項目組合而成。每個子項目是單一的可下載包。Eclipse軟件開發(fā)工具箱為
開發(fā)者提供了功能強大的開發(fā)環(huán)境和各種開發(fā)工具。所有基于Eclipse的工具都在其平臺上創(chuàng)建。Eclipse平臺又可以進一步劃分為如下幾個主要部
分。
- Ant——基于Java的編譯工具
- Core——核心庫
- Debug——通用調試器
- Scriping——支持腳本
- SWT——標準小窗口工具箱
- UI——用戶界面
- Update——動態(tài)更新/安裝服務
- VC——版本化和配置管理
三、常用概念及工具1.SWT http://www.eclipse.org/swt/
SWT(Standard Widget
Toolkit)稱為標準小部件工具。它提供了一個公共的、獨立于操作系統(tǒng)的應用程序接口。該接口主要用于實現(xiàn)與底層的本地窗口系統(tǒng)機密集成。整個
Eclipse平臺界面采用了插件機制插入工具箱,并使用SWT向用戶顯示信息。
2.JFace http://wiki.eclipse.org/index.php/JFace/
JFace是一個UI工具箱,它用于開發(fā)UI功能部件的helper類,用戶要實現(xiàn)該類是比較困難的。JFace不僅用界面框架來提供較高級別的應用程序
構造,還可以用來支持對話框、向導、操作、用戶首選項和小窗口管理等。JFace是處理許多公用用戶接口編程任務分類的用戶接口工具集。JFace在它的
API和在實現(xiàn)上獨立于窗口系統(tǒng),并與SWT共同工作。
3.CVS http://www.eclipse.org/eclipse/platform-cvs/
CVS(Concurrent Version
System,并發(fā)版本系統(tǒng))是在UNIX中的經(jīng)典的版本控制軟件SCCS和RCS的基礎上發(fā)展起來的。由于其強大的版本控制功能,目前己成為源代碼開發(fā)
組織使用的標準版本控制系統(tǒng)。Eclipse平臺采用Pserver或SSH協(xié)議來存取CVS資源庫。在并發(fā)版本控制系統(tǒng)小組編程環(huán)境下,組內成員獨立地
在各自的工作臺內完成自己的工作。最后通過CVS資源庫來共享他們的工作。
CVS使用分支模型來支持多個獨立卻又相互聯(lián)系的工作流程。所謂分支,就是指一個開發(fā)團隊正在進行的項目進行共享和集成的地方,它可以被看成是組內成員的一個公共的工作區(qū)間,每個成員對項目的更改都會反應到這里。
4.Tomcat http://tomcat.apache.org/
Jakarta
Tomcat服務器是在Sun公司的JSWDK基礎上發(fā)展起來的一個優(yōu)秀的Servlet/JSP容器。它是Apache-Jakarta軟件組織的一個
子項目。它可以和大部分主流HTTP服務器一起工作。作為一個Servlet/JSP容器,Tomcat負責處理客戶端的請求,把請求傳送給
Servlet并把結果返回給客戶端。Tomcat服務器除了能夠運行Servlet和JSP,還提供Web服務器的功能。Tomcat有三種工作模式,
分別是獨立的Servlet容器、進程內的Servlet容器和進程外的Servelet容器。
TomcatPlugin是一款優(yōu)秀的控制Tomcat的Eclipse插件。該插件可以實現(xiàn)在Eclipse的控制臺中啟動和關畢Tomcat,還可以用來創(chuàng)建Tomcat工程。
5.MySQL http://www.mysql.com/ MySQL數(shù)據(jù)庫是眾多的關系數(shù)據(jù)庫產品中的一元。它的主要性能如下:
- 提供C、C++、Java、Python、Perl、PHP和TCL的API接口。
- 多平臺:包括Solaris、SunOS、BSDI、SGIIRIX、AIX、DEC UNIX、Linux、FreeBSD、NetBSD、OpenBSD、HPUX、Windows。
- 擁有非常靈活和安全的權限系統(tǒng),對密碼進行加密,可以處理大型數(shù)據(jù)。
- 提供多種語言支持。
6.Struts http://struts.apache.org/
Struts是一種方便實用的Web應用框架。在Servlet技術和JSP技術中,Struts被用來構建Java
Web應用程序的開源框架。它是屬于Jakarta
Project的一部分。Struts就是一個MVC框架,它提供了自己的模型、視圖和控制器。模型是由實現(xiàn)業(yè)務邏輯的JavaBean或EJB組建組
成,在Struts框架中對應的是ActionForm;控制器由ActionServlet和Action來實現(xiàn);視圖就是由一組JSP文件構成的。現(xiàn)
分別對這三個組件進行簡要介紹:
1)模型(Model)
在Struts的體系結構中,模型分為兩個部分:系統(tǒng)的內部狀態(tài)和可以改變狀態(tài)的操作(事務邏輯)。內部狀態(tài)通常由一組ActinForm
Bean表示。根據(jù)設計或應用程序復雜度的不同,這些Bean可以是自包含的并具有持續(xù)的狀態(tài),或只在需要時才獲得數(shù)據(jù)(從某個數(shù)據(jù)庫)。大型應用程序通
常在方法內部封裝事務邏輯(操作),這些方法可以被擁有狀態(tài)信息的bean調用。比如購物車bean,它擁有用戶購買商品的信息,可能還有
checkOut()方法用來檢查用戶的信用卡,并向倉庫發(fā)定貨信息。小型程序中,操作可能會被內嵌在Action類,它是struts框架中控制器角色
的一部分。當邏輯簡單時這個方法很適合。建議用戶將事務邏輯(要做什么)與Action類所扮演的角色(決定做什么)分開。
2)視圖(View) 視圖主要由JSP建立,struts包含擴展自定義標簽庫(TagLib),可以簡化創(chuàng)建完全國際化用戶界面的過程。目前的標簽庫包括:Bean Tags、HTML tags、Logic Tags、Nested Tags 以及Template Tags等。
3)控制器(Controller)
在struts中,基本的控制器組件是ActionServlet類中的實例servelt,實際使用的servlet在配置文件中由一組映射(由
ActionMapping類進行描述)進行定義。對于業(yè)務邏輯的操作則主要由Action、ActionMapping、ActionForward這
幾個組件協(xié)調完成的,其中Action扮演了真正的業(yè)務邏輯的實現(xiàn)者,ActionMapping與ActionForward則指定了不同業(yè)務邏輯或流
程的運行方向。struts-config.xml 文件配置控制器。
7.Hibernate http://www.hibernate.org/
Hibernate是一個基于Java的開源的持久化中間件,它在Java應用程序和關系數(shù)據(jù)庫之間搭建了一座橋梁。它首先要在Java應用程序中使用,
而且要負責實現(xiàn)Java對象和關系數(shù)據(jù)庫之間的映射。Hibernate對JDBC做了輕量級的封裝,同時向上層應用提供了面向對象的數(shù)據(jù)訪問方式。其
實,Hibernate提供的是ORM(Object/Relation Mapping)映射服務,也就是對象——關系映射,把關系數(shù)據(jù)庫轉化成對象。
8.Spring http://www.springframework.org/
Spring是輕量級的J2EE應用程序框架。它主要由控制反轉(IoC,Inversion of
Control)、面向方面編程(Aspect-Oriented
Programming,AOP)和抽象服務三部分構成,其插件式的架構降低了組件之間的依賴性。以下將對這三部分分別做簡要介紹。
Spring的核心是個輕量級容器(container),實現(xiàn)了IoC(Inversion of
Control)模式的容器,Spring的目標是實現(xiàn)一個全方位的整合框架,在Spring框架下實現(xiàn)多個子框架的組合,這些子框架之間彼此可以獨立,
也可以使用其它的框架方案加以替代,Spring希望提供one-stop shop的框架整合方案
。Spring的核心概念是IoC,IoC的抽象概念是“依賴關系的轉移”,像“高層模組不應該依賴低層模組,而是模組都必須依賴于抽象”是
IoC的一種表現(xiàn),“實現(xiàn)必須依賴抽象,而不是抽象依賴實現(xiàn)”也是IoC的一種表現(xiàn),“應用程序不應依賴于容器,而是容器服務于應用程序”也是IoC的一
種表現(xiàn)。
面向方面編程是當今軟件開發(fā)的一大模式。它使得構建并實現(xiàn)大型的企業(yè)級的開發(fā)變得更加簡單。借助Spring AOP,開發(fā)者能夠更高效地使用J2EE企業(yè)服務。
Srping抽象服務,借助于各種J2EE API抽象,把各種不同的J2EE API統(tǒng)一起來。這樣開發(fā)者能夠迅速掌握各種J2EE API的核心內容,能夠一致地使用J2EE技術,減少代碼量,精簡系統(tǒng)。
通過XML配置文件,開發(fā)者們可以在運行的時候連接不同的應用組件。目前存在3種依賴注入類型:基于設置的方法、基于構建器的方法和基于接口的注入方法。
Spring的IoC支持前兩種注入方法。因此,通過Spring開發(fā)者可以通過構建器或者設置值的方法創(chuàng)建對象,并對對象進行管理。
9.JBoss http://www.jboss.org/
JBoss服務器是一個優(yōu)秀的輕量級的J2EE應用服務器。作為一個經(jīng)過J2EE1.4認證的免費應用服務器,JBoss是目前市場上使用最廣泛的開放源
代碼的應用服務器之一。它的架構具有高度的靈活性和易用性,這就使得JBoss成為了剛開始從事J2EE開發(fā)的新手的理想選擇,也可以作為高級架構師按照
需求來制定對應服務的中間件平臺。雖然JBoss核心服務僅提供EJB服務器,而不包括Servlet和Web容器,不過它可以和Tomcat完美地結合
在一起來支持整個J2EE系統(tǒng)。JBoss采用JMX API來實現(xiàn)軟件模塊的集成與管理。關于JBoss的詳細資料請參閱其主頁
http://www.jboss.org 。
10.Lomboz http://forge.objectweb.org/projects/lomboz Lomboz插件是一個在Eclipse上專門支持J2EE開發(fā)的插件,它有以下幾個主要功能:
- 各種網(wǎng)頁標記和JSP關鍵字高亮顯示。
- 對JSP的語法進行檢查。
- war文件和EJB檔案(JAR)文件的部署。
- 利用Wizard向導來完成Web應用和EJB應用的構建和部署。
- 利用XDoclet來完成EJB接口和部署描述符的自動生成。
- 利用Wizard向導來新建EJB客戶端測試程序。
- 在各種容器如Tomcat、JBoss和WebLogic上進行調試。
11.JUnit http://www.junit.org/index.htm JUnit是一個開放源代碼的Java測試框架,用在編寫和運行可重復的測試上。它是單元測試框架xUnit的一個實例。JUnit非常小巧,但是功能卻非常強大。對不同性質的被測試對象,如Class、JSP、Servlet等,JUnit有不同的使用技巧。
JUnit有如下特性:- 用于測試希望結果的斷言
- 用于共享共同測試數(shù)據(jù)的測試工具
- 用于方便地組織和運行測試的測試套件
- 星圖形和文本的測試運行器
JUnit的優(yōu)點:- 可以使測試代碼與產品代碼分開。這更有利于代碼的打包發(fā)布和測試代碼的管理。
- 針對某一類的測試代碼,通過較少的改動便可以應用另一個類的測試,JUnit提供了一個編寫測試類的框架,使測試代碼的編寫更加方便。
- 易于集成到程序的構建過程中。JUnit和Ant的結合還可以實施增量開發(fā)。
- JUnit的源代碼時公布的,故而可以進行二次開發(fā)。
- JUnit具有很強的擴展性,可以方便地對Junit進行擴展。
12.Ant http://ant.apache.org/Ant(Another Neat Tool)是一款很好的變異部署工具,它是Apache軟件基金會Jakarta項目中的一個子項目,它有以下優(yōu)點:
- 跨平臺性:Ant是用純Java語言編寫的,所以具有很好的跨平臺性。
- 操
作簡單:Ant是由一個內置任務和可選任務構成的。Ant運行時需要一個XML文件(構建wenjian)。Ant通過調用target樹,就可以執(zhí)行各
種task。每個task實現(xiàn)了特定的接口對象。由于Ant構建文件是XML格式的文件,所以很容易維護和書寫,而且結構很清晰。
- Ant可以集成到開發(fā)環(huán)境中:由于Ant的跨平臺性和操作簡單的特點,它很容易集成到一些開發(fā)環(huán)境中去。
13.通用日志包、Log4j、SimpleLog、NoOpLog
Apache通用日志包是Apache組織的開源項目。它負責向開發(fā)者提供一系列通用的日志接口。用戶可以自由地選擇和實現(xiàn)通用日志接口。通用日志包目前支持以下幾個日志器。
- Log4j日志器是一個開放源代碼項目。它由Logger、Appender和Layout這三個主要的組建構成。http://logging.apache.org/
- SimpleLog日志器在通用日志包中自帶了org.apache.commons.logging.impl.SimpleLog日志實現(xiàn)類。它實現(xiàn)了Log接口,把日志消息都輸出到系統(tǒng)錯誤流System.err中。http://www.simplelog.net/
- NoOpLog日志器在通用日志包中自帶了org.apache.commons.logging.impl.NoOpLog日志實現(xiàn)類,實現(xiàn)了Log接口。其輸出日志的方法中不進行任何操作。
其中,SimpleLog和NoOpLog日志器是通用日志包自帶的,Log4j日志器是第三方的軟件。
14.MyEclipse
http://www.myeclipseide.com/ MyEclipse是Eclipse的商業(yè)插件,也是一款功能強大的J2EE集成開發(fā)環(huán)境,支持代碼編寫、配置、測試以及除錯。
Genuitec發(fā)布了MyEclipse Enterprise Workbench
5.0,更智能、更快捷、更簡單和更便宜的J2EE工具的新版本的誕生。它的價格對于個人和企業(yè)開發(fā)人員來說都是非常有吸引力的。這是J2EE
IDE市場一個重量級的選手。通過增加UML雙向建模工具、WYSIWYG的JSP/Strutsdesigner、可視化的Hibernate/ORM
工具、Spring和Web services支持,以及新的Oracle數(shù)據(jù)庫開發(fā),MyEclipse 5.0繼續(xù)為業(yè)界提供全面的產品。