一、 javabean 是什么?
Bean的中文含義是“豆子”,顧名思義,JavaBean是指一段特殊的Java類,就是有默然構(gòu)造方法,只有g(shù)et,set的方法的java類的對象.
專業(yè)點(diǎn)解釋是:
JavaBean定義了一組規(guī)則
JavaBean就是遵循此規(guī)則的平常的Java對象
滿足這三個(gè)條件:
1.執(zhí)行java.io.Serializable 接口
2.提供無參數(shù)的構(gòu)造器
3.提供getter 和 setter方法訪問它的屬性.
簡單地說,JavaBean是用Java語言描述的軟件組件模型,其實(shí)際上是一個(gè)類。這些類遵循一個(gè)接口格式,以便于使函數(shù)命名、底層行為以及繼承或?qū)崿F(xiàn)的行為,可以把類看作標(biāo)準(zhǔn)的JavaBean組件進(jìn)行構(gòu)造和應(yīng)用。
JavaBean一般分為可視化組件和非可視化組件兩種。可視化組件可以是簡單的GUI元素,如按鈕或文本框,也可以是復(fù)雜的,如報(bào)表組件;非可視化組件沒有GUI表現(xiàn)形式,用于封裝業(yè)務(wù)邏輯、數(shù)據(jù)庫操作等。其最大的優(yōu)點(diǎn)在于可以實(shí)現(xiàn)代碼的可重用性。JavaBean又同時(shí)具有以下特性。
- 易于維護(hù)、使用、編寫。
- 可實(shí)現(xiàn)代碼的重用性。
- 可移植性強(qiáng),但僅限于Java工作平臺(tái)。
- 便于傳輸,不限于本地還是網(wǎng)絡(luò)。
- 可以以其他部件的模式進(jìn)行工作。
對于有過其他語言編程經(jīng)驗(yàn)的讀者,可以將其看作類似微軟的ActiveX的編程組件。但是區(qū)別在于JavaBean是跨平臺(tái)的,而ActiveX組件則僅局限于Windows系統(tǒng)。總之,JavaBean比較適合于那些需要跨平臺(tái)的、并具有可視化操作和定制特性的軟件組件。
JavaBean組件與EJB(Enterprise JavaBean,企業(yè)級(jí)JavaBean)組件完全不同。EJB 是J2EE的核心,是一個(gè)用來創(chuàng)建分布式應(yīng)用、服務(wù)器端以及基于Java應(yīng)用的功能強(qiáng)大的組件模型。JavaBean組件主要用于存儲(chǔ)狀態(tài)信息,而EJB組件可以存儲(chǔ)業(yè)務(wù)邏輯。
2 使用JavaBean的原因
程序中往往有重復(fù)使用的段落,JavaBean就是為了能夠重復(fù)使用而設(shè)計(jì)的程序段落,而且這些段落并不只服務(wù)于某一個(gè)程序,而且每個(gè)JavaBean都具有特定功能,當(dāng)需要這個(gè)功能的時(shí)候就可以調(diào)用相應(yīng)的JavaBean。從這個(gè)意義上來講,JavaBean大大簡化了程序的設(shè)計(jì)過程,也方便了其他程序的重復(fù)使用。
JavaBean傳統(tǒng)應(yīng)用于可視化領(lǐng)域,如AWT(窗口工具集)下的應(yīng)用。而現(xiàn)在,JavaBean更多地應(yīng)用于非可視化領(lǐng)域,同時(shí),JavaBean在服務(wù)器端的應(yīng)用也表現(xiàn)出強(qiáng)大的優(yōu)勢。非可視化的JavaBean可以很好地實(shí)現(xiàn)業(yè)務(wù)邏輯、控制邏輯和顯示頁面的分離,現(xiàn)在多用于后臺(tái)處理,使得系統(tǒng)具有更好的健壯性和靈活性。JSP + JavaBean和JSP + JavaBean + Servlet成為當(dāng)前開發(fā)Web應(yīng)用的主流模式。
3 JavaBean的開發(fā)
在程序設(shè)計(jì)的過程中,JavaBean不是獨(dú)立的。為了能夠更好地封裝事務(wù)邏輯、數(shù)據(jù)庫操作而便于實(shí)現(xiàn)業(yè)務(wù)邏輯和前臺(tái)程序的分離,操作的過程往往是先開發(fā)需要的JavaBean,再在適當(dāng)?shù)臅r(shí)候進(jìn)行調(diào)用。但一個(gè)完整有效的JavaBean必然會(huì)包含一個(gè)屬性,伴隨若干個(gè)get/set(只讀/只寫)函數(shù)的變量來設(shè)計(jì)和運(yùn)行的。JavaBean作為一個(gè)特殊的類,具有自己獨(dú)有的特性。應(yīng)該注意以下3個(gè)方面。
- JavaBean類必須有一個(gè)沒有參數(shù)的構(gòu)造函數(shù)。
- JavaBean類所有的屬性最好定義為私有的。
- JavaBean類中定義函數(shù)setXxx() 和getXxx()來對屬性進(jìn)行操作。其中Xxx是首字母大寫的私有變量名稱。