- 論壇徽章:
- 0
|
本帖最后由 pasoolee 于 2010-11-10 21:57 編輯
Apache Geronimo成因,是由于沒有基于BSDlicense開源的J2EE服務軟件,而ASF中卻有很多基于J2EE標準的應用子項目,所以Geronimo就出生了。
如果說linux的kernel有些像Geronimo的話,其他能放進去的組件應該是GNU上面的東東。
它包含了很多符合J2EE的開源項目。如:
Apache Tomcat(不多說了)。
Apache OpenEJB(就是EJB,呵呵)
Axis 1.x,為一個web服務引擎,用來支持JAX-RPC web服務
Axis2,用來提供J2EE實現(xiàn)的JAX-WS, SOAP 1.2, SAAJ 以及其他的web服務。
CXF,是一個開源服務框架,也適用于Geronimo的web服務,也可以作為Axis2的替身。
Mortbay的Jetty,是一個輕量級的web server和Servlet容器,它可以方便的集成到其它環(huán)境中,其實和tomcat差不多,基于Apache License V2.0。
ActiveMQ消息代理 支持JMS。
XBean 用來從鏡像發(fā)現(xiàn)下載安裝服務器組件,支持IoC,類的生命期和加載管理,JMX和Spring集成;它是Geronimo的子項目。
Derby(呵呵,R database)
Scout,Java API for XML,它負責提供一個可供用戶查詢的web服務隊列。
OpenJPA, Java Persistence API. A persistence entity is a lightweight Java class whose state is typically persisted to a table in a relational database.
log4j & SLF4J 日志用的。
Commons 包含一些常用的可復用Java組件,如BeanUtils,F(xiàn)ileUpload,IO。
GShell,是Geronimo核心,字面翻譯是:建立富命令行應用框架。
Yoko,CORBA用。
TranQL,persistence engines。A PersistenceEngine is closely related to an ObjectOrientedDatabase, but is more tightly bound to the execution environment than the term 'database' implies.
————————————————————————————————————————————————
2010.11.01
Geronimo 構架
它是由一個負責依賴管理、設置管理、生命周期管理、備份服務的IoC核心構成。
J2EE容器所需的管道,部署支持,事務,分布式,名稱,應用管理及安全性都是建立在這個內(nèi)核上。
上面提到的都安插在這個核心之上。
GBeans是Geronimo的基礎構建骨架,作為一個簡單環(huán)抱式標簽管理方式,來提供生命周期回調(diào)。
一組GBeans就構成一個應用配置,“在Geronimo里一切都是GBeans”。
Geronimo運行非常簡單,無www.apache.org下載zip包,配置Java SDK環(huán)境(JAVA_HOME, JRE_HOME)
然后到<GERONIMO_HOME>/bin下執(zhí)行“start-server”,即可瀏覽“http://localhost:8080/console”,來訪問Geronimo的管理界面。初始用戶為:system,密碼是:manager。
————————————————————————————————————————————————
2010.11.7
開發(fā)工具最好為Eclipse,因為有 Geronimo Eclipse Plugin官方提供的開發(fā)插件。
可以通過Web Tools Platform進行下載。
呵呵,接下來是較為費解的IoC(Inversion of Control)和dependency injection。
其實網(wǎng)上有很多資料了,可以參考:http://baike.baidu.com/view/146665.htm
這種設計模式是用來處理松散耦合系統(tǒng)的,就是處理由于程序調(diào)用而引起的緊耦合。
依賴注入是IoC的一個具體應用。就是由系統(tǒng)構架提供一個裝載機或配置器為用戶程序需要注入的對象。首先由用戶程序聲明對其他模塊的依賴(這個模塊由系統(tǒng)構架或其他用戶程序提供)。然后由裝載機將依賴部分注入到用戶程序需要的地方。
————————————————————————————————————————————————
2010.11.10- public RentCalculator(float rate, float taxRate){
- rentRate = rate;
- tCalc = new ServiceTaxCalculator(taxRate);
- }
復制代碼- public RentCalculator(float rate, TaxCalculator tCalc){
- rentRate = rate;
- this.tCalc = tCalc;
- }
復制代碼 上面代碼中的構造函數(shù)處理借口的方式不一樣。后一個是采用IoC。 |
|