新聞中心
從單層體系結(jié)構(gòu)講到了多層體系結(jié)構(gòu),又講到了N層體系結(jié)構(gòu)。這樣引出了主題(J2EE)。不過(guò)這句話(huà)翻譯的不錯(cuò):其他需要特別注意的(是)服務(wù)器方資源包括線(xiàn)程,數(shù)據(jù)庫(kù)連接,安全、事務(wù)等等。定制處理這些資源的基礎(chǔ)結(jié)構(gòu)是相當(dāng)費(fèi)勁的。這種工作在INTERNET環(huán)境中是不可能的。如果你的開(kāi)發(fā)周期只有三個(gè)月,能夠?qū)?shù)據(jù)庫(kù)訪(fǎng)問(wèn)建立連接池、對(duì)象緩沖區(qū)或“精彩的”對(duì)象層嗎?

說(shuō)了一大堆話(huà)終于引出了偉大的J2EE。不過(guò)要是不知道N層結(jié)構(gòu)的真應(yīng)該看看!容器:說(shuō)白了容器就是JAVA程序的運(yùn)行環(huán)境。不知道我的理解是否正確?,F(xiàn)在的程度就只能理解到這了。
在學(xué)習(xí)EJB過(guò)程中,書(shū)上說(shuō)J2EE規(guī)范定義了四種容器類(lèi)型:
1.小應(yīng)用程序(APPLET)。
2.應(yīng)用程序客戶(hù)容器。(自己以為就是SWING)
3.WEB容器(SERVLET 和 JSP)
4.EJB容器。
看來(lái)123都已經(jīng)掌握了,現(xiàn)在就差4了,所以學(xué)習(xí)EJB容器還是必要的哦!書(shū)上對(duì)EJB寫(xiě)了個(gè)更加深入的解釋?zhuān)篍JB是個(gè)分布式組件模型,可以開(kāi)發(fā)安全的、可伸縮的、事務(wù)性的多用戶(hù)組件。簡(jiǎn)單的說(shuō),EJB是包含業(yè)務(wù)邏輯的可復(fù)用軟件單元。就象JSP可以將應(yīng)用程序與業(yè)務(wù)邏輯分開(kāi)一樣,EJB可以將應(yīng)用程序邏輯和系統(tǒng)層服務(wù)分開(kāi),使開(kāi)發(fā)人員集中考慮業(yè)務(wù)問(wèn)題,而不必考慮系統(tǒng)編程。
J2EE API:
RMI/IIOP:Remote Method Invocation類(lèi)似網(wǎng)絡(luò)連接使用的一些東西。
JNDI:Java Naming and Directory Interface。
JDBC:這個(gè)不用說(shuō)了吧?
JAVAMAIL/JAF:JAVA的MAIL服務(wù),JAF是郵件的附件。
JMS:JAVA MESSAGE SERVER。JAVA消息服務(wù)。
設(shè)計(jì)中為何使用EJB:
說(shuō)了一大堆,我還是不確定是為什么。再接著看吧!不過(guò)這次我更加的確定了,原來(lái)EJB容器就相當(dāng)于一個(gè)“功能“服務(wù)器,可以把一些業(yè)務(wù)功能寫(xiě)在這個(gè)里邊。然后用123來(lái)調(diào)用咯!(不知道這么說(shuō)是不是有點(diǎn)搞笑)。哈哈,我的理解正確了,果然書(shū)的第8頁(yè)就說(shuō)了,容器可以看成是執(zhí)行環(huán)境!EJB的容器服務(wù):(這里的容器服務(wù)都是不用編碼,而是容器管理自己實(shí)現(xiàn)的啊。不錯(cuò))
組件池和壽命周期管理:
哈哈,來(lái)點(diǎn)白話(huà)的,這是我個(gè)人理解的,組件池在容器啟動(dòng)的時(shí)候就自己生成了好多的BEAN的實(shí)例,假如說(shuō)是10個(gè)吧,這個(gè)時(shí)候客戶(hù)1來(lái)了,他就拿了BEAN1,這個(gè)時(shí)候別人是不能使用BEAN1的,再來(lái)了第2個(gè)客戶(hù),他不能拿BEAN1了,就只能拿BEAN2了。。。。。。。這個(gè)時(shí)候客戶(hù)11來(lái)了,容器發(fā)現(xiàn)已經(jīng)沒(méi)有BEAN給他用了,于是就找個(gè)現(xiàn)在沒(méi)人用的BEAN給他用,可是發(fā)現(xiàn)全都在被占用,沒(méi)辦法了,就只好再生成一個(gè)給他用了。哈哈,就是這么簡(jiǎn)單,可是有人會(huì)問(wèn)了,這不是越生成越多嗎?沒(méi)關(guān)系,容器發(fā)現(xiàn)生成的BEAN沒(méi)人用了,就會(huì)自動(dòng)的給刪掉,釋放空間,釋放系統(tǒng)資源嘛!
客戶(hù)會(huì)話(huà)管理:
理解鈍化和激活就行了。鈍化就是把客戶(hù)的BEAN狀態(tài)保存在池中。激活就是把客戶(hù)的這個(gè)BEAN狀態(tài)再還給客戶(hù)。
數(shù)據(jù)庫(kù)連接池:
這個(gè)好象不用講了吧!數(shù)據(jù)資源共享!這個(gè)名起的COOL B了。
事務(wù)管理:
事務(wù)很是昂貴?。?/p>
驗(yàn)證和訪(fǎng)問(wèn)控制:
這個(gè)很簡(jiǎn)單!容器如何提供服務(wù):這一部分先不寫(xiě),以后再寫(xiě),因?yàn)槲乙膊辉趺蠢斫?。哈?/p>
EJB類(lèi)型:
分為3種類(lèi)型:
會(huì)話(huà)BEAN:
1.無(wú)狀態(tài)會(huì)話(huà)BEAN。
2.狀態(tài)會(huì)話(huà)BEAN。
這兩個(gè)BEAN非常的重要,但是在第3章才有講。哈哈,先擱這!
實(shí)體BEAN:
自己理解就好象是數(shù)據(jù)庫(kù)BEAN,就是把數(shù)據(jù)庫(kù)的內(nèi)容都讀出來(lái)放在BEAN里,也不知道它具體是怎么讀的,這樣做會(huì)不會(huì)很浪費(fèi)系統(tǒng)資源?????
實(shí)體BEAN根據(jù)同步的不一樣又可以分為:
CMP(容器管理的持久性):容器負(fù)責(zé)BEAN與基礎(chǔ)的數(shù)據(jù)庫(kù)同步。
BMP(BEAN管理的持久性):這里要編程人員負(fù)責(zé)和基礎(chǔ)數(shù)據(jù)庫(kù)同步!容器在適當(dāng)?shù)臅r(shí)候調(diào)用編程人員寫(xiě)好的SQL語(yǔ)句!
真不明白,為什么已經(jīng)有CMP了還要出了個(gè)BMP,書(shū)上是這么解釋的:
有時(shí)需要增加設(shè)計(jì)的靈活性或在非關(guān)系型存儲(chǔ)中支持持久性?這是人話(huà)嗎?
還有個(gè)比方:EJB規(guī)范V1.1只允許實(shí)例變量和表格列之間的一對(duì)一映射。這樣,使用這個(gè)版本時(shí),如果要在實(shí)體BEAN中表示在多個(gè)表格中存儲(chǔ)狀態(tài)的累計(jì)對(duì)象,則無(wú)法使用CMP,而要使用BMP。EJB2.0規(guī)范定影了復(fù)雜的查詢(xún)語(yǔ)言!
本文標(biāo)題:學(xué)習(xí)EJB編程的簡(jiǎn)單過(guò)程
網(wǎng)頁(yè)URL:http://fisionsoft.com.cn/article/djjhgsd.html


咨詢(xún)
建站咨詢(xún)
