摘要: osgi一個(gè)最大的特色就是使用不同的ClassLoader,讓多個(gè)bundle共享一個(gè)虛擬機(jī),而每一個(gè)bundle使用單獨(dú)的ClassLoader。
閱讀全文
摘要: 前面通過(guò)一個(gè)例子簡(jiǎn)單的介紹了如何快速的開(kāi)發(fā)一個(gè)osgi應(yīng)用。下面來(lái)具體說(shuō)明一下什么是osgi,以及osgi 能做什么,為什么使用osgi,以及到底o(hù)sgi能帶來(lái)什么益處。
閱讀全文
摘要: 接觸了osgi也這么久了,其中也走了不少的彎路。為了更好的推廣osgi,并避免新手能少走一些彎路,接下來(lái)的幾篇文章,我會(huì)通過(guò)幾個(gè)簡(jiǎn)單的實(shí)例,來(lái)介紹一下如何快速的掌握osgi。其實(shí),網(wǎng)上有不少好的文章推薦,順便也可以比較一下。BlueDavy的osgi 實(shí)戰(zhàn)是值得推薦的,當(dāng)初也是看了之后,少走了很多彎路。參見(jiàn)網(wǎng)址:http://www.tkk7.com/BlueDavy/。 ModuleFusion 也是一個(gè)不錯(cuò)的項(xiàng)目,里面集成了現(xiàn)有的優(yōu)秀框架,包括hibernate,guice,wicket等。參見(jiàn)網(wǎng)址:http://code.google.com/p/modulefusion/。
閱讀全文
摘要: 研究了ext很久了,一直想為ext直接封裝一個(gè)服務(wù)端組件。考慮到ext組件的構(gòu)建都是需要使用js來(lái)完成,那么服務(wù)端生成的代碼也就是js而不是html。
閱讀全文
摘要: 最近的這段時(shí)間,感覺(jué)Ext挺火的。接觸Ext還是半年前的事情了,那時(shí)候就想對(duì)Ext進(jìn)行封裝,做一個(gè)服務(wù)端的Ajax框架出來(lái)。
閱讀全文
摘要: 這些東東,對(duì)于web框架來(lái)說(shuō),是必不可少的,來(lái)看看jsf是如何實(shí)現(xiàn)的。首先看一下國(guó)際化,默認(rèn)的情況下,會(huì)選擇默認(rèn)的locale,以及相應(yīng)的資源文件。當(dāng)然可以通過(guò)以下方式進(jìn)行配置:
閱讀全文
摘要: 先來(lái)看看velocity是怎么工作的?
在應(yīng)用中使用velocity,一般需要以下的幾個(gè)步驟:
* 初始化Velocity,可以使用單例,或者運(yùn)行期實(shí)例
* 創(chuàng)建context對(duì)象,用于包括相應(yīng)的變量
* 在context中增加相應(yīng)的數(shù)據(jù)
* 選擇模板
* 合并模板,產(chǎn)生輸出
閱讀全文
摘要: 一個(gè)古老而又強(qiáng)大的模版引擎。在模版引擎中,velocity中,應(yīng)該屬于最常用的,不管是在maven的項(xiàng)目模版,還是在源代碼輸出,甚至直接網(wǎng)頁(yè)輸出中,都可以看到其身影。當(dāng)然,最近的freemarker大有平分天下之意。
閱讀全文
摘要: 對(duì)于標(biāo)記庫(kù),不想再說(shuō)些什么了。jsf可能最大的毛病都在這個(gè)標(biāo)記庫(kù)上面,首先定義的標(biāo)記在jsp中,并不起到相應(yīng)的輸出功能,而只是用來(lái)增加相應(yīng)得組件。在jsf中,最上層的組件為UIViewRoot,基本上所有的操作都是需要圍繞著此組件。而標(biāo)記庫(kù)的存在,只是為了簡(jiǎn)化相應(yīng)的操作。
閱讀全文
摘要: 這是jsf 的分析系列第三篇,隨著不斷的深入,jsf的設(shè)計(jì)變得越來(lái)越清晰。當(dāng)然,在目前的規(guī)范中,jsf還是很不完善的,這也就導(dǎo)致了為什么jsf還是不能成為目前的主流框架。先不去談?wù)撨@些弊端,還是先看看一下jsf具體是如何運(yùn)作的。
閱讀全文
摘要: 接上一篇內(nèi)容。這次主要分析一下jsf的相關(guān)組件包,也是jsf和structs主要不同的地方。jsf 規(guī)范中,對(duì)于組件的設(shè)計(jì),和其他組件架構(gòu)一樣,分離表現(xiàn)層和模型層。對(duì)于組件的render由具體的Renderer來(lái)處理,這也達(dá)到了Model和 View分離的原則。
閱讀全文
摘要: 經(jīng)過(guò)一段時(shí)間的學(xué)習(xí),對(duì)jsf的認(rèn)識(shí)也逐漸清晰。總結(jié)了一下jsf和structs的區(qū)別,首先在于分離了請(qǐng)求的處理。使用事件處理機(jī)制來(lái)代替原有的request分發(fā)。其次在頁(yè)面的展示上,采用組件的概念,而不是到處散落的html標(biāo)記。再有,jsf對(duì)于請(qǐng)求的生命周期重新進(jìn)行了劃分,對(duì)于每個(gè)階段都可以派遣事件,這使得整個(gè)請(qǐng)求的處理比較的清晰。最后,jsf對(duì)于頁(yè)面的流轉(zhuǎn)使用Navigation系統(tǒng)來(lái)處理,這一點(diǎn)感覺(jué)和structs還是比較類(lèi)似的,只是換了一個(gè)概念。
閱讀全文
摘要: 用泛型時(shí)遇到的尷尬問(wèn)題,關(guān)于java.beans的相同方法名稱(chēng)問(wèn)題
閱讀全文
摘要: 在eclipse中使用jetty是非常簡(jiǎn)單的,對(duì)于其他的ide配置基本上都一致。以前如果想調(diào)試web服務(wù),必須要在龐大的開(kāi)發(fā)插件下進(jìn)行,如 myeclipse,其實(shí)只是需要簡(jiǎn)單的功能,然而卻不得不接受許多不常用的功能。沒(méi)有辦法,現(xiàn)在有了jetty,如果你只想調(diào)試web服務(wù)而已,那么請(qǐng)離開(kāi)那些龐大的開(kāi)發(fā)插件。簡(jiǎn)單的事情,用簡(jiǎn)單的方式處理。
閱讀全文
摘要: 一直以來(lái)使用jetty作為我的web開(kāi)發(fā)配置服務(wù)器,開(kāi)始的時(shí)候和所有的初學(xué)者一樣使用tomcat作為開(kāi)發(fā)服務(wù)器,可用著用著,感覺(jué)tomcat越來(lái)越繁瑣以及龐大。后來(lái),用了jboss,知道jboss使用jetty作為其web應(yīng)用服務(wù)器,所以就開(kāi)始試著使用jetty。從那開(kāi)始后,jetty就成為我的開(kāi)發(fā)配置服務(wù)器了,從最初的4.0,到現(xiàn)在的6.0一直在使用著。
閱讀全文
摘要: web 開(kāi)發(fā)很多年了,從單純的jsp 到struts,再到webwork,接著就是spring 的mvc。感覺(jué)jsp 的封裝性,實(shí)在不怎么樣。于是乎想到了組件化,以前的時(shí)候用過(guò)echo,現(xiàn)在是echo2,不可否認(rèn),echo的設(shè)計(jì)結(jié)構(gòu)比較的不錯(cuò),完全的面向?qū)ο蠡_(kāi)發(fā),也沒(méi)有了那些令人討厭的jsp。不過(guò)實(shí)在受不了的就是echo的速度,echo2據(jù)說(shuō)已經(jīng)大幅改進(jìn),而且完全的實(shí)現(xiàn)了ajax。不過(guò)echo2畢竟受關(guān)注度不是很廣,還是決定放棄使用。
閱讀全文
摘要: ehcache的默認(rèn)配置文件名為ehcache.xml,也可以自己指定。配置文件比較的簡(jiǎn)單,基本上也就是常用的幾個(gè)元素。
閱讀全文
摘要: 一直以來(lái)懶得配置緩存,基本的緩存也就是orm層,基本上都交給hibernate去配置了。這段時(shí)間,感覺(jué)頁(yè)面速度太慢了,還是需要使用緩存。現(xiàn)在的緩存工具也挺多的,較不錯(cuò)的屬ehcache和oscache了。決定分別研究一下。
閱讀全文
摘要: jibx又一個(gè)不錯(cuò)的xml綁定工具,隨著這段時(shí)間的使用,感覺(jué)越來(lái)越隨心應(yīng)手了。和jaxb一樣,都是屬于xml綁定工具。不同于jaxb,jibx使用java字節(jié)碼enhance技術(shù),而jaxb更多在于源代碼生成技術(shù)。
閱讀全文
摘要: 關(guān)于java字節(jié)碼的處理,目前有很多工具,如bcel,asm。不過(guò)這些都需要直接跟虛擬機(jī)指令打交道。如果你不想了解虛擬機(jī)指令,可以采用 javassist。javassist是jboss的一個(gè)子項(xiàng)目,其主要的優(yōu)點(diǎn),在于簡(jiǎn)單,而且快速。直接使用java編碼的形式,而不需要了解虛擬機(jī)指令,就能動(dòng)態(tài)改變類(lèi)的結(jié)構(gòu),或者動(dòng)態(tài)生成類(lèi)。
閱讀全文
摘要: 在java中,類(lèi)裝載異常雖然不是很常見(jiàn),可如果發(fā)生異常,其處理還是比較麻煩的。
下面的幾種異常是比較常見(jiàn)的:
閱讀全文
摘要: 使用maven2的另外一個(gè)好處,就是有了統(tǒng)一的入口,用于察看項(xiàng)目的進(jìn)展情況。這主要包括了項(xiàng)目的介紹,成員介紹,以及相關(guān)的項(xiàng)目的文檔,當(dāng)然也包括項(xiàng)目的所有進(jìn)展報(bào)表。
下面,通過(guò)實(shí)例來(lái)介紹如何配置maven,來(lái)產(chǎn)生項(xiàng)目站點(diǎn)。
閱讀全文
摘要: 這幾天,看了jpa(java 持久性 api)的規(guī)范,作為ejb3的重要組成部分,jpa 還是值得關(guān)注的。看完規(guī)范,感覺(jué)jpa還是比較的單一的,
其目標(biāo)就是實(shí)現(xiàn)java 持久性的通用。jpa采用純pojo的方式實(shí)現(xiàn),更多的是采用java 5注釋。jpa 的優(yōu)勢(shì)是多供應(yīng)商的支持,可以運(yùn)行在容器
閱讀全文
摘要: hibernate 的強(qiáng)大在于完全的對(duì)象化,對(duì)于對(duì)象之間的關(guān)系解決的比較好,如1對(duì)1,1對(duì)多,多對(duì)1,以及多對(duì)多。當(dāng)然也包括繼承關(guān)系。
而ibatis這方面就比較遜色了,不過(guò)對(duì)于也支持簡(jiǎn)單的關(guān)連查詢(xún),如1對(duì)1,和1對(duì)多。對(duì)于一般的情況來(lái)說(shuō),這兩種已經(jīng)足夠了,當(dāng)然不能層疊更新是一個(gè)缺陷,看了半天文檔,也沒(méi)有找到對(duì)象之間的層疊更新,估計(jì)是不支持。
閱讀全文
摘要: 不過(guò)在spring 中已經(jīng)提供了很好的實(shí)現(xiàn),所以這又省去了很多的功夫,接下來(lái)看看ibatis是如何支持clob和blob的。
ibatis提供了TypeHandler接口,用于處理數(shù)據(jù)類(lèi)型,基本的實(shí)現(xiàn)類(lèi)為BaseTypeHandler
在spring 中,提供了AbstractLobTypeHandler作為基礎(chǔ)類(lèi),并且提供了相應(yīng)的模版方法,所有的工作由LobHandler處理。
BlobByteArrayTypeHandler 主要用于處理blob類(lèi)型數(shù)據(jù),使用byte[]來(lái)映射相應(yīng)的blob
ClobStringTypeHandler 用于處理clob類(lèi)型數(shù)據(jù),使用字符串來(lái)映射Clob
閱讀全文
摘要: 用了很久hibernate ,突然想換個(gè)別的orm 工具,當(dāng)然在orm領(lǐng)域中,hibernate是老大。看了一下ibatis,發(fā)現(xiàn)如果對(duì)于crud操作不是很多的系統(tǒng)來(lái)說(shuō),是個(gè)不錯(cuò)的選擇,尤其是適合那些對(duì)sql和性能熱衷的開(kāi)發(fā)者。綜合來(lái)說(shuō)ibatis不能算orm工具,只能算個(gè)半成品。不過(guò)比起直接用jdbc寫(xiě),那還是方便多了。主要的好處是分離了sql和代碼,如果你想追求性能,那么sql是你很好的利器,當(dāng)然ibatis的緩存也不錯(cuò)。比起hibernate,ibatis就簡(jiǎn)單多了,估計(jì)也就3天能夠基本掌握了,這大大減少了學(xué)習(xí)成本。
閱讀全文
摘要: 對(duì)于團(tuán)隊(duì)來(lái)說(shuō),建立統(tǒng)一的開(kāi)發(fā)環(huán)境是必須的,而maven能很好幫助建立統(tǒng)一的環(huán)境。下面就介紹如何更有效的進(jìn)行統(tǒng)一的配置。
閱讀全文
摘要: 在spring 的以前版本中,只是支持singleton,prototype兩種類(lèi)型,
在2.0中作了很大的改進(jìn),增加了RequestScope,和SessionScope兩種范圍。當(dāng)然也支持自定義Scope
下面簡(jiǎn)單介紹一下,spring2.0是如何支持自定義Scope的。
閱讀全文
摘要: 說(shuō)完了settings.xml配置,下來(lái)說(shuō)一下maven2的主要配置pom.xml
什么是pom?
pom作為項(xiàng)目對(duì)象模型。通過(guò)xml表示maven項(xiàng)目,使用pom.xml來(lái)實(shí)現(xiàn)。主要描述了項(xiàng)目:包括配置文件;開(kāi)發(fā)者需要遵循的規(guī)則,缺陷管理系統(tǒng),組織和licenses,項(xiàng)目的url,項(xiàng)目的依賴(lài)性,以及其他所有的項(xiàng)目相關(guān)因素。
閱讀全文
摘要: maven2 比起maven1 來(lái)說(shuō),需要配置的文件少多了,主要集中在pom.xml和settings.xml中。
先來(lái)說(shuō)說(shuō)settings.xml,settings.xml對(duì)于maven來(lái)說(shuō)相當(dāng)于全局性的配置,用于所有的項(xiàng)目。
閱讀全文
摘要: 相信maven1 大家都已經(jīng)很熟悉了,具體maven能做什么,就不詳細(xì)說(shuō)了。個(gè)人覺(jué)得maven在開(kāi)源項(xiàng)目中用的還是比較多的
閱讀全文
摘要: 為了建立統(tǒng)一的類(lèi)庫(kù),以及統(tǒng)一的項(xiàng)目管理入口。這兩個(gè)禮拜來(lái),一直看maven2的資料。剛開(kāi)始以為maven2跟ant差不多,應(yīng)該很快就能上手,可是越看越麻煩,可能我的E文水平太濫的緣故
閱讀全文