JBoss4.0詳細(xì)概覽
JBoss4.0,是一個安裝簡單,包含EJB2.0容器、Java消息服務(wù)等等功能的應(yīng)用服務(wù)器,但是他的面向方面設(shè)計(AOP)是它真正突出的部分。
JBoss4.0概覽
JBoss包括web服務(wù)器(servlet/JSP容器,HTML服務(wù)器)、EJB2.0容器。完整的純Java的數(shù)據(jù)庫引擎,(Java消息服務(wù))JMS,JavaMail,和Java事務(wù)處理API/Java事務(wù)處理服務(wù)(JTA/JTS)支持。早期的JBoss使用了Apache Tomcat Web服務(wù)器,但在JBoss4.0中已經(jīng)吧Apache Tomcat內(nèi)嵌到JBoss中了。
JBoss4.0在今年的 JavaOne大會上發(fā)布。JBoss組織把這個版本的JBoss作為一個開發(fā)版,以便進(jìn)行開發(fā)代碼的測試。正式的產(chǎn)品級的版本預(yù)計要到今年的第四季度發(fā)布。新增的功能包括,集成Java數(shù)據(jù)對象(JDO),對于JMS多點(diǎn)傳送機(jī)制支持的修補(bǔ),對J2EE1.4的完全實(shí)現(xiàn)和分布式事務(wù)機(jī)制。
安裝JBoss4.0非常簡單:先解壓縮JBoss打包文件在配置一些環(huán)境變量就可以了。假設(shè)我現(xiàn)在有一個WAR文件并且這個文件已經(jīng)使用JDBC進(jìn)行了測試。當(dāng)JBoss已經(jīng)正常運(yùn)行,我把這個WAR文件放到JBoss的部署目錄下,這時 JBoss的熱部署功能就可以自動部署這個WAR。從下載JBoss到安裝并運(yùn)行我的應(yīng)用程序大概花不了10分鐘。
JBoss的應(yīng)用服務(wù)器控制和配置-JMX機(jī)制,運(yùn)行一次可以部署所有的組件和服務(wù)。資源屬性和可配置參數(shù)可以通過MBeans(可控制beans)映射和更改,這些控制可以在 JBoss的控制臺進(jìn)行設(shè)置。一旦我們的servlet-based的應(yīng)用程序被部署,JBoss就自動安裝一個部署MBeans,這個MBeans會被添加到JMX控制臺的導(dǎo)航菜單中。通過這個MBean就可以部署或卸載WAR應(yīng)用程序,或查看應(yīng)用程序相關(guān)的屬性。
不可否認(rèn),JBoss的控制臺在圖形話方面比起IBM's WebSphere 或BEA's WebLogic要顯得簡單的多,但效果是一樣的完全可以滿足工作的需要。另外,由于JBoss是開發(fā)源代碼的所以你可以根據(jù)需要擴(kuò)展控制臺加上你想要的東西。JBoss4.0概覽
aspects 介紹
JBoss4.0的新特性體現(xiàn)在面向方面設(shè)計(AOP)方面。通過適當(dāng)?shù)臄U(kuò)展,AOP可以使你描述類似共享自父類的類。在JBoss中,AOP特性有許多好處。最重要的一個特性是它可以向你的類中“注入”一個行為而無需更改類的源代碼。這一特性允許你維護(hù)對象的持久行,使對象的方法“有目的的處理 ”("transaction aware,")并使一個類能夠多集成。
JBoss的AOP架構(gòu)負(fù)責(zé)處理AOP,使用了一組命名概念,比如"interceptor," "pointcut," 和“introduction”。一個interceptors編碼“攔截器”(intercepts),它把一個對象放到一個被攔截的類中。JBoss允許你定義攔截器,這個攔截器被 hook到構(gòu)造方法和存取字段上。一個由pointcut定義的點(diǎn)被插入到攔截器類內(nèi)部,他是一段定義在一個specific.xml文件中的XML代碼,這也是一個像上面講到的熱部署的過程。
一個pointcut定義了已經(jīng)攔截的(intercepted )和正在攔截的類的規(guī)范,它是一個可選項(xiàng),可以通過XML文件中的過濾機(jī)制來選擇它,所以只有規(guī)范的字段和方法會被攔截。攔截類擴(kuò)展了一個invoke()方法,只
要攔截類的方法或字段被訪問這個方法就會被JBoss AOP架構(gòu)調(diào)用。結(jié)果搶菇卣嚦床壞酵獠肯低澈屠菇乩嘀潯徊迦肓聳裁礎(chǔ)?lt;BR
JBoss在引導(dǎo)時通過攔截類的類文件實(shí)現(xiàn)了這一切。當(dāng)一個攔截類被引導(dǎo),ClassLoader通過類文件向類中加入字節(jié)代碼。在運(yùn)行之后字節(jié)代碼把控制傳輸?shù)揭粋€控制類中并且扮演一個交換器的角色,把攔截發(fā)送到適當(dāng)?shù)奶幚眍悺?/P>
JBoss4.0 AOP架構(gòu)超出了簡單的向一個類中注入行為的操作。它提出了引言的概念,這個引言是一個特定的攔截它在引導(dǎo)時把一個新的接口存儲到類中。另外,引言提供了類的接口的實(shí)現(xiàn)。
如果你覺得多重繼承還不夠,JBoss還使用AOP來把類和類的方法與元數(shù)據(jù)關(guān)聯(lián)起來。實(shí)際上,JBoss參照了JSR1.75中的元數(shù)據(jù)機(jī)制。這使得今后JBoss可以透明的向一個已有的Java對象添加所有的持久行機(jī)制和傳輸控制。
如果對AOP的方面的知識很感興趣,但是你又不想通過一個應(yīng)用服務(wù)器來體驗(yàn)他的特性,你可以從JBoss.org上下載一個分離的AOP架構(gòu)單獨(dú)使用。
復(fù)雜,但卻很有用
我必須承認(rèn)我對JBoss AOP的擔(dān)心。它非常像FastObjects 的oop ,我也非常喜歡FastObjects。JBoss的AOP很先進(jìn)但也很麻煩,它在類裝載時處理,所以沒有外在的附加的編輯步驟,對于向類中插入方法不需要改變源代碼。
當(dāng)我重新考量JBoss的簡單安裝和優(yōu)秀的熱部署功能后,我打消了上述對JBoss的擔(dān)心?,F(xiàn)在只剩下對JBoss4.0的另一個看法那就是他的文檔,JBoss站點(diǎn)上發(fā)布的免費(fèi)文檔好像是原來的舊文檔。JBoss4.0概覽就這些,再沒什么了。
【編輯推薦】