複製鏈接
請複製以下鏈接發送給好友

JavaBean

鎖定
JavaBean 是一種JAVA語言寫成的可重用組件。為寫成JavaBean,類必須是具體的和公共的,並且具有無參數的構造器。JavaBean 通過提供符合一致性設計模式的公共方法將內部域暴露成員屬性,set和get方法獲取。眾所周知,屬性名稱符合這種模式,其他Java 類可以通過自省機制(反射機制)發現和操作這些JavaBean 的屬性。
中文名
Javabean
外文名
Javabean
類    別
Java組件
模    型
軟件組件模型

JavaBean相關信息

JavaBean是一種可重用的Java組件,它可以被Applet、Servlet、JSP等Java應用程序調用.也可以可視化地被Java開發工具使用。它包含屬性(Properties)、方法(Methods)、事件(Events)等特性。
JavaBean是一種軟件組件模型,就跟ActiveX控件一樣,它們提供已知的功能,可以輕鬆重用並集成到應用程序中的java類。任何可以用Java代碼創造的對象都可以利用JavaBean進行封裝。通過合理的組織具有不同功能的JavaBean,可以快速的生成一個全新的應用程序,如果將這個應用程序比作一輛汽車,那麼這些JavaBean就好比組成這輛汽車的不同零件。對軟件開發人員來説,JavaBean帶來的最大的優點是充分提高了代碼的可重用性,並且對軟件的可維護性和易維護性起到了積極作用。
JavaBean的種類按照功能可以劃分為可視化和不可視化兩類。可視化的JavaBean就是擁有GUI圖形用户界面的,對最終用户是可見的。不可視化的JavaBean不要求繼承,它更多的被使用在JSP中,通常情況下用來封裝業務邏輯、數據分頁邏輯、數據庫操作和事物邏輯等,這樣可以實現業務邏輯和前台程序的分離,提高了代碼的可讀性和易維護性,使系統更健壯和靈活。隨着JSP的發展,JavaBean更多的應用在非可視化領域,並且在服務器端應用方面表現出了越來越強的生命力。 [1] 

JavaBean功能特點

用户可以使用JavaBean將功能、處理、值、數據庫訪問和其他任何可以用java代碼創造的對象進行打包,並且其他的開發者可以通過內部的JSP頁面、Servlet、其他JavaBean、applet程序或者應用來使用這些對象。用户可以認為JavaBean提供了一種隨時隨地的複製和粘貼的功能,而不用關心任何改變。
JavaBean可分為兩種:一種是有用户界面(UI,User Interface)的JavaBean;還有一種是沒有用户界面,主要負責處理事務(如數據運算,操縱數據庫)的JavaBean。JSP通常訪問的是後一種JavaBean。
JavaBean是可複用的平台獨立的軟件組件,開發者可以在軟件構造器工具中對其直接進行可視化操作。軟件構造器工具可以是Web頁面構造器、可視化應用程序構造器、GUI設計構造器或服務器應用程序構造器。有時,構造器工具也可以是一個包含了一些bean的複合文檔的文檔編輯器
JavaBean可以是簡單的GUI要素,如按鈕或滾動條;也可以是複雜的可視化軟件組件,如數據庫視圖,有些JavaBean是沒有GUI表現形式的,但這些JavaBean仍然可以使用應用程序構造器可視化地進行組合。一個JavaBean和一個JavaApplet相似,是一個非常簡單的遵循某種嚴格協議的Java類。每個JavaBean的功能都可能不一樣,但它們都必須支持以下特徵。
一個bean沒有必須繼承的特定的基類或接口。可視化的bean必須繼承的類是java.awt.Component,這樣它們才能添加到可視化容器中去,非可視化bean則不需要繼承這個類。有許多bean,無論是在應用程序構造器工具中,還是在最後創建好的應用程序中,都具有很強的可視化特徵,但這並非每個bean必須的特徵。在使用Java編程時,並不是所有軟件模塊都需要轉換成bean。Bean比較適合於那些具有可視化操作和定製特性的軟件組件
從基本上説,JavaBean可以看成是一個黑盒子,即只需要知道其功能而不必管其內部結構的軟件設備。黑盒子只介紹和定義其外部特徵和與其他部分的接口,如按鈕、窗口、顏色、形狀、句柄等。通過將系統看成使用黑盒子關聯起來的通訊網絡,我們可以忽略黑盒子內部的系統細節,從而有效地控制系統的整體性能。

JavaBean組成部分

一個JavaBean由3部分組成:
(1) 屬性(properties)
JavaBean提供了高層次的屬性概念,屬性在JavaBean中不只是傳統的面向對象的概念裏的屬性,它同時還得到了屬性讀取和屬性寫入的API的支持。屬性值可以通過調用適當的bean方法進行。比如,可能bean有一個名字屬性,這個屬性的值可能需要調用String getName()方法讀取,而寫入屬性值可能要需要調用void setName(String str)的方法。
每個JavaBean屬性通常都應該遵循簡單的方法命名規則,這樣應用程序構造器工具和最終用户才能找到JavaBean提供的屬性,然後查詢或修改屬性值,對bean進行操作。JavaBean還可以對屬性值的改變作出及時的反應。比如一個顯示當前時間的JavaBean,如果改變時鐘的時區屬性,則時鐘會立即重畫,顯示當前指定時區的時間。
(2) 方法(method)
JavaBean中的方法就是通常的Java方法,它可以從其他組件或在腳本環境中調用。默認情況下,所有bean的公有方法都可以被外部調用,但bean一般只會引出其公有方法的一個子集。由於JavaBean本身是Java對象,調用這個對象的方法是與其交互作用的唯一途徑。JavaBean嚴格遵守面向對象的類設計邏輯,不讓外部世界訪問其任何字段(沒有public字段)。這樣,方法調用是接觸Bean的唯一途徑。
但是和普通類不同的是,對有些Bean來説,採用調用實例方法的低級機制並不是操作和使用Bean的主要途徑。公開Bean方法在Bean操作中降為輔助地位,因為兩個高級Bean特性--屬性和事件是與Bean交互作用的更好方式。因此Bean可以提供要讓客户使用的public方法,但應當認識到,Bean設計人員希望看到絕大部分Bean的功能反映在屬性和事件中,而不是在人工調用和各個方法中。
(3) 事件(event)
Bean與其他軟件組件交流信息的主要方式是發送和接受事件。我們可以將bean的事件支持功能看作是集成電路中的輸入輸出引腳:工程師將引腳連接在一起組成系統,讓組件進行通訊。有些引腳用於輸入,有些引腳用於輸出,相當於事件模型中的發送事件和接收事件。
事件為JavaBean組件提供了一種發送通知給其他組件的方法。在AWT事件模型中,一個事件源可以註冊事件監聽器對象。當事件源檢測到發生了某種事件時,它將調用事件監聽器對象中的一個適當的事件處理方法來處理這個事件。 由此可見,JavaBean確實也是普通的Java對象,只不過它遵循了一些特別的約定而已。 [2] 

JavaBean特徵

Javabean Javabean
第一,其中JavaBean為共有類,此類要使用訪問權限對public進行修飾,主要是為了方便JSP的訪問;
第二,JavaBean定義構造的方式時,一定要使用public修飾,同時不能要參數,不定義構造方式時,Java編譯器可以構造無參數方式;
第三,JavaBean屬性通常可以使用訪問權限對private進行修飾,此種主要表示私有屬性,但是也只能在JavaBean內使用,在聲明中使用public修飾的則被認為是公有權限,主要是方便同時JSP進行交互;
第四,使用setXXX()的方法以及getXXX()的方法得到JavaBean裏的私有屬性XXX數值;
第五,JavaBean--定要放在包內,使用package進行自定義,也可以放在JavaBean代碼第一行;
第六,對於部署好的JavaBean修改是,一定要重新編譯節碼文件,同時啓動Tomcat服務器,之後便能夠生效。 [2] 

JavaBean優點

構件對組裝環境具有較強的適應能力。通過主對象對組裝環境的感知,協調內部對象作出反應,改變接口狀態以適應環境。在必要時,可依靠外部驅動對象的引入,進一步增強對環境的適應能力。實現從分析設計到實現的平滑過渡。領域分析和設計的基本原則:將領域知識和計算機實現分離開來。將構件內部對象劃分成實現用户功能的對象集和用於組裝的對象集加以實現,符合分析和設計原則。最大限度地利用成熟的技術。從構件的分析、設計和實現都可藉助已有的比較成熟的面向對象技術

JavaBean開發環境

JavaBean設計環境

第一點説明的是bean必須可以在設計環境(design environment)中運行。在設計環境中,bean應該提供設計信息給應用程序構造器工具並允許終端用户制定bean的外觀和行為。
在傳統的軟件構造活動中,必須通過編譯、鏈接之後才能看到應用程序的最終運行結果;而利用JavaBean設計的軟件中,則沒有這種明確的界限。使用JavaBean,就可以非常直觀地設計應用程序軟件,在設計過程中賦予軟件主機。而且,這個過程更加容易重複開發,設計思想更加容易變成原型。

JavaBean運行環境

第二點説明的是bean必須可以在運行環境(run-time environment)中使用。在這個環境中,對設計信息和定製的需求並不重要。一個組件的設計環境信息和設計環境中編寫的代碼通常可能是非常巨大的。
因此,我們可能需要在bean的設計環境方面和運行環境方面作一個明確的區分,這樣,就可能需要在運行環境中不使用bean的任何設計環境代碼來配置這個bean。所以,JavaBean就必須分別支持運行環境接口的類庫和設計環境接口的類庫。 [1] 
參考資料
  • 1.    劉顏顏.淺談JSP中JavaBean技術的應用[J].科技信息,2010,(8):229,231.
  • 2.    楊俊.基於Java Web項目開發之JavaBean應用[J].電腦迷,2018,(19):108.