解釋
最初,JavaBean的目的是為了將可以重複使用的軟體代碼打包標準。特別是用與幫助廠家開發在綜合開發環境(IDE)下使用的java軟體部件。這些包括如Grid控制項,用戶可以將該部件拖放到開發環境中。從此,JavaBean就可以擴展為一個java web 套用的標準部件,並且JavaBean部件框架已經擴展為企業版的 Bean(EJB)。JavaBean 和 Server Bean(通常稱為 Enterprise JavaBean (EJB))有一些基本相同之處。它們都是用一組特性創建,以執行其特定任務的對象或組件。它們還有從當前所駐留伺服器上的容器獲得其它特性的能力。這使得 bean 的行為根據特定任務和所在環境的不同而有所不同。
Enterprise Bean 與 JavaBean 不同。JavaBean 是使用 java.beans 包開發的,它是 Java 2 標準版的一部分。JavaBean 是一台機器上同一個地址空間中運行的組件。JavaBean 是進程內組件。Enterprise Bean 是使用 javax.ejb 包開發的,它是標準 JDK 的擴展,是 Java 2 Enterprise Edition 的一部分。Enterprise Bean 是在多台機器上跨幾個地址空間運行的組件。因此 Enterprise Bean 是進程間組件。JavaBean 通常用作 GUI 視窗小部件,而 Enterprise Bean 則用作分散式商業對象.
JavaBean 是一種JAVA語言寫成的可重用組件。為寫成JavaBean,類必須是具體的和公共的,並且具有無參數的構造器。JavaBeans 通過提供符合一致性設計模式的公共方法將內部域暴露稱為屬性。眾所周知,屬性名稱符合這種模式,其他Java 類可以通過自省機制發現和操作這些JavaBean 屬性。
用戶可以使用JavaBean將功能、處理、值、資料庫訪問和其他任何可以用java代碼創造的對象進行打包,並且其他的開發者可以通過內部的JSP頁面、Servlet、其他JavaBean、applet程式或者套用來使用這些對象。用戶可以認為JavaBean提供了一種隨時隨地的複製和貼上的功能,而不用關心任何改變。
JavaBean是Sun微系統的一個面向對象的編程接口,它可以讓你建可重用應用程式或能在網路中任何主流作業系統平台上配置的程式塊,稱作組件。像Java applet一樣,JavaBeans組件(或“Beans”)能夠給予全球資訊網頁面互動的能力,例如:計算感興趣的比率或是根據用戶或瀏覽器的特性改變頁面內容。
從用戶的觀點來看,一個組件可以是一個與你互動的按鈕或是一個當你按下按鈕它便開始的小計算程式。從一個開發者的觀點來看,那個按鈕組件和計算器組件是分別被創建的,並且他們可以一起使用或是在不同的應用程式或情況下和不同的組件產生不同的組合來使用。
當組件或Beans在使用過程中,Bean的性質(比如,一個視窗的背景色)對於其他Bean來說是可見的,並且,之前沒“碰到”過的Bean也可以動態地獲悉彼此的特性並從而進行互動。
Bean是隨Sun的Bean開發包(BDK)開發出來的,並且能在任何主流作業系統平台的許多應用程式環境(人們所說的“容器”,container)中運行,包括瀏覽器,文字處理軟體,以及一些其他套用。
要想用JavaBeans建一個組件,你必須用Sun的Java程式語言來寫程式,並且在程式中包括描述組件特性的JavaBeans語句,這些組件特性例如:用戶接口的特性,以及觸發一個bean和在同一個容器中或網路其他地方的其他的bean交流的事件。
JavaBeans給Java應用程式提供了OpenDoc和ActiveX接口已提供的這種複合文檔的能力。
功能
JavaBean的任務就是: “Write once, run anywhere, reuse everywhere”,即“一次性編寫,任何地方執行,任何地方重用”。這個任何實際上就是要解決困擾軟體工業的日益增加的複雜性,提供一個簡單的、緊湊的和優秀的問題解決方案。1. 一個開發良好的軟體組件應該是一次性地編寫,而不需要再重新編寫代碼以增強或完善功能。因此,JavaBean應該提供一個實際的方法來增強現有代碼的利用率,而不再需要在原有代碼上重新進行編程。除了在節約開發資源方面的意義外,一次性地編寫JavaBean組件也可以在版本控制方面起到非常好的作用。開發者可以不斷地對組件進行改進,而不必從頭開始編寫代碼。這樣就可以在原有基礎上不斷提高組件功能,而不會犯相同的錯誤。2. JavaBean組件在任意地方運行是指組件可以在任何環境和平台上使用,這可以滿足各種互動式平台的需求。由於JavaBean是基於Java的,所以它可以很容易地得到互動式平台的支持。JavaBean組件在任意地方執行不僅是指組件可以在不同的操作平台上運行,還包括在分散式網路環境中運行。3.JavaBean組件在任意地方的重用說的是它能夠在包括應用程式、其他組件、文檔、Web站點和應用程式構造器工具的多種方案中再利用。這也許是JavaBean組件的最為重要的任務了,因為它正是JavaBean組件區別於Java程式的特點之一。Java程式的任務就是JavaBean組件所具有的前兩個任務,而這第3個任務卻是JavaBean組件獨有的。JavaBean是可復用的平台獨立的軟體組件,開發者可以在軟體構造器工具中其直接進行可視化操作。
軟體構造器工具可以是Web頁面構造器、可視化應用程式構造器、CUI設計構造器或伺服器應用程式構造器。有時,構造器工具也可以是一個包含子一些bean的複合文檔的文檔編輯器。
JavaBean可以是簡單的CUI要素,如按鈕或滾動條;也可以是複雜的可視化軟體組件,如資料庫視圖,有些JavaBean是沒有GUI表現形式的,但這些JavaBean仍然可以使用應用程式構造器可視化地進行組合。
一個JavaBean和一個Javaapplet相似,是一個非常簡單的遵循某種嚴格協定的Java類。每個JavaBean的功能都可能不一樣,但它們都必須支持以下特徵。
一個bean沒有必須繼承的特定的基類或接口。可視化的bean必須繼承的類是java.awt.Component,這樣它們才能添加到可視化容器中去,非可視化bean則不需要繼承這個類。有許多bean,無論是在應用程式構造器工具中,還是在最後創建好的應用程式中,都具有很強的可視化特徵,但這並非每個bean必須的特徵。
在使用Java編程時,並不是所有軟體模組都需要轉換成bean。Bean比較適合於那些具有可視化操作和定製特性的軟體組件。
從基本上說,JavaBean可以看成是一個黑盒子,即只需要知道其功能而不必管其內部結構的軟體設備。黑盒子只介紹和定義其外部特徵和與其他部分的接口,如按鈕、視窗、顏色、形狀、句柄等。
通過將系統看成使用黑盒子關聯起來的通訊網路,我們可以忽略黑盒子內部的系統細節,從而有效地控制系統的整體性能。作為一個黑盒子的模型,JavaBean有3個接口面,可以獨立進行開發。
1. JavaBean可以調用的方法。
2. JavaBean提供的可讀寫的屬性。
3. JavaBean向外部傳送的或從外部接收的事件。
JavaBean設計注意事項
1.不要試圖在JavaBean返回的HTML中放置任何字型尺寸。
並不是所有的瀏覽器都相同。很多瀏覽器無法處理完整的字型尺寸。
2.不要試圖在JavaBean返回的HTML中放置任何腳本或者DHTML。
向頁面直接輸出腳本或者DHTML相當於自我毀滅,因為某些瀏覽器版本在處理不正確的腳本時會崩潰(非常少但是有)。如果用戶的JavaBean在運行時是動態的推出複雜的HTML語言,用戶將陷入調試的噩夢。另外,複雜的HTML將限制JavaBean的壽命和靈活性。
3.不要提供任何的選擇。