什麼是Java bean



一.簡潔的說法:
 1、所有屬性爲private
 2、提供默認構造方法
 3、提供getter和setter
 4、實現serializable接口:序列化id要是不提供,序列化的時候會自動生成一個,帶來額外的負擔。


二.javabean其實包含多個方面的含義。
 1,顧名思義,bean,保存數據的實體,通常與數據庫中的表對應。
 也稱爲,pojo,entity,domain。比如Person,Apple等,
 只有private屬性和public setxxxx和getxxx。具體實例就是對應表
 中的一行。那些hibernate,ibatis等orm框架,都支持它們和表的互相映射。
 2,這個就比較高大上,也比較抽象了。javabean被稱爲完成特定功
 能的組件。不是有高內聚低耦合的說法麼?它就是這樣一組java類集合。


三.
不談概念,只談用處的話,javabean,或更精確的說是目前更流行的pojo,廣泛用於分層開發中進行數據交換。
一般而言,pojo與數據表結構對應。邏輯層與數據層之間只通過 pojo進行交換。如
db.save(pojo);
pojos= db.find(sql);
如此邏輯層不用去考慮複雜的sql拼接問題更關注於具體邏輯過程,從而使系統更有條理。
而表現層與邏輯層之間也可以使用pojo+模板引擎的方式進行處理。
所以個人對javabean的不精準概括就是:javabean是數據的映射。


四.
Java Bean 規範中 bean 的官方定義:“根據 Sun的JavaBean 規範,一個bean就是一個可重用的軟件構件,並且能夠在開發工具中可視化地操作。”
Bean有一個無參數的構造函數。
屬性修飾符爲:private 。
所有訪問器方法都以get開頭,所有的修改器方法都以set開頭,get/set 命名模式有一個例外,布爾類型的屬性應該使用 is/set 命名模式。
實現接口 java.io.Serializable 。
所有事件類的名字必須以 Event 結尾,並且必須繼承自 EventObject 類。EventNameEvent 類型的事件對應監聽器接口 EventNameListener 。
JavaBean 持久化,適合於長期存儲。用 JavaBean 的屬性來將 bean 存儲到流中,並在之後的某個時刻,或者在另一個虛擬機中再將它們讀回來。

一旦實現了一個bean,其他人能夠在開發環境中使用它。與必須編寫冗長的代碼不同,開發人員可以直接將bean拖拽到GUI表單中,並用對話框來定製它。


五. serializable接口

該接口中一個成員變量或者成員方法也沒有,作用是實現序列化。

 序列化:對象的壽命通常隨着生成該對象的程序的終止而終止,有時候需要把在
 內存中的各種對象的狀態(也就是實例變量,不是方法)保存下來,
 並且可以在需要時再將對象恢復。雖然你可以用你自己的各種各樣
 的方法來保存對象的狀態,但是Java給你提供一種應該比你自己的
 好的保存對象狀態的機制,那就是序列化。

 總結: Java 序列化技術可以使你將一個對象的狀態寫入一個Byte 流裏(系(序)列化),
 並且可以從其它地方把該Byte 流裏的數據讀出來(反序列化)。

序列化的用途:想把的內存中的對象狀態保存到一個文件中或者數據庫中時候
  想把對象通過網絡進行傳播的時候

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章