選擇EJB3.0,不再需要Spring+Hibernate
Spring的業(yè)務(wù)層的緩沖類要自己設(shè)計(jì),設(shè)計(jì)是有些復(fù)雜的,而且設(shè)計(jì)也存在一個(gè)問(wèn)題,照Put JSF to work那個(gè)例子那種做法,一次性都把數(shù)據(jù)表里的數(shù)據(jù)都裝進(jìn)內(nèi)存里,這樣做有一個(gè)問(wèn)題,試想,如果數(shù)據(jù)據(jù)庫(kù)的每條記錄的大小達(dá)1M(可以達(dá)到的,比如有一個(gè)字段的是文本的,文字很多,像新聞發(fā)布系統(tǒng)),那么如果有1024 條記錄,那把這個(gè)表的數(shù)據(jù)都裝進(jìn)內(nèi)存,那么內(nèi)存就要1G,如果一個(gè)應(yīng)用很多表呢!內(nèi)存要多少,不可想象!
當(dāng)然,如果用Spring+hibernate,理論上說(shuō),可以滿足這個(gè)項(xiàng)目,
不過(guò)我們這次課程設(shè)計(jì),Spring不只是滿足這個(gè)項(xiàng)目的需要就可以了,要重要的是要做到規(guī)范化的設(shè)計(jì)!因?yàn)檫@次設(shè)計(jì),將會(huì)是將來(lái)的設(shè)計(jì)的指導(dǎo)
我選擇EJB3.0有幾個(gè)原因:
1.EJB3.0的事務(wù)也是交給容器管理,自動(dòng)rollback.
2.EJB3.0在netbeans 上開(kāi)發(fā)非常容易!
3.EJB3.0的組件有一個(gè)優(yōu)點(diǎn),它不是一次性把數(shù)據(jù)表的記錄以EJB對(duì)象的形式都裝進(jìn)緩存,而是有需要的時(shí)候,才裝進(jìn)緩存,然后在緩存中,如果那個(gè)對(duì)象長(zhǎng)時(shí)間不被用到,它就會(huì)自動(dòng)從緩存中消失!這是我現(xiàn)在的大概理解!更詳細(xì)的內(nèi)容,看有關(guān)EJB生命周期的介紹!
【編輯推薦】