什么是POJO,JavaBean蠢挡?

什么是POJO弧岳,JavaBean?

總結(jié):
POJO:
一個簡單的Java類业踏,這個類沒有實現(xiàn)/繼承任何特殊的java接口或者類,不遵循任何主要java模型涧卵,約定或者框架的java對象勤家。在理想情況下,POJO不應(yīng)該有注解柳恐。
JavaBean:

  • JavaBean是可序列化的伐脖,實現(xiàn)了serializable接口
  • 具有一個無參構(gòu)造器
  • 有按照命名規(guī)范的set和gett,is(可以用于訪問布爾類型的屬性)方法

pojo

點擊鏈接:java對象 POJO和JavaBean的區(qū)別
點擊鏈接:Difference between DTO, VO, POJO, JavaBeans?
點擊鏈接:維基百科:Plain old Java object

POJO的創(chuàng)始人(martinfowler)博客:

The term was coined while Rebecca Parsons, Josh MacKenzie and I were preparing for a talk at a conference in September 2000. In the talk we were pointing out the many benefits of encoding business logic into regular java objects rather than using Entity Beans. We wondered why people were so against using regular objects in their systems and concluded that it was because simple objects lacked a fancy name. So we gave them one, and it's caught on very nicely.
...在談話中我們指出乐设,編寫業(yè)務(wù)邏輯的時候讼庇,使用常規(guī)的java對象要比實體bean要好的多。我們懷疑為什么一些人極力反對在他們的代碼中使用常規(guī)對象近尚,還辯解稱因為這些常規(guī)對象沒有一個花哨的名字蠕啄,所以我們給他們起了一個非常好聽的名字。(Plain Old Java Object)

維基百科原文————(以下代碼和示例均來源于此)

The term "POJO" initially denoted a Java object which does not follow any of the major Java object models, conventions, or frameworks; nowadays "POJO" may be used as an acronym for "Plain Old JavaScript Object" as well, in which case the term denotes a JavaScript object of similar pedigree.[2]
術(shù)語POJO起初表示為不遵任何主要的java模型戈锻,約定或者框架的java對象歼跟,現(xiàn)在,pojo也可以用作'Plain Old JavaScript Object'的縮寫格遭,這樣的話和javascript對象有著相似的淵源哈街。

理想狀態(tài)下,pojo應(yīng)該是一個不受Java語言規(guī)范限制的java對象拒迅。換句話說骚秦,pojo<strong>不應(yīng)該</strong>:

1.繼承預(yù)先設(shè)定的類她倘,如:

public class Foo extends javax.servlet.http.HttpServlet { 
    // ...
}

2.實現(xiàn)預(yù)先設(shè)定的接口,如:

public class Bar implements javax.ejb.EntityBean { 
    // ...
}

3.包含預(yù)先指定的注解作箍,如:

@javax.persistence.Entity
public class Baz { 
    // ...
}

However, due to technical difficulties and other reasons, many software products or frameworks described as POJO-compliant actually still require the use of prespecified annotations for features such as persistence to work properly. The idea is that if the object (actually class) was a POJO before any annotations were added, and would return to POJO status if the annotations are removed then it can still be considered a POJO. Then the basic object remains a POJO in that it has no special characteristics (such as an implemented interface) that makes it a "Specialized Java Object" (SJO or (sic) SoJO).
然而硬梁,由于技術(shù)和其他原因,很多被稱之為POJO標準的軟件產(chǎn)品或框架仍然需要使用特定的注解來保證持久化等功能蒙揣。這個想法是靶溜,如果對象(類)在任何注解添加之前是一個pojo的話,并且注解移除之后仍然是pojo懒震。所以最基礎(chǔ)的pojo解釋是沒有特別的特征(尤其是實現(xiàn)接口之類的)罩息,使其稱之為“專用java對象”

JavaBean

點此鏈接:維基百科中JavaBeans的概念

A JavaBean is a POJO that is serializable, has a no-argument constructor, and allows access to properties using getter and setter methods that follow a simple naming convention. Because of this convention, simple declarative references can be made to the properties of arbitrary JavaBeans. Code using such a declarative reference does not have to know anything about the type of the bean, and the bean can be used with many frameworks without these frameworks having to know the exact type of the bean. The JavaBeans specification, if fully implemented, slightly breaks the POJO model as the class must implement the Serializable interface to be a true JavaBean. Many POJO classes still called JavaBeans do not meet this requirement. Since Serializable is a marker (method-less) interface, this is not much of a burden.
JavaBean是一個可序列化的POJO,具有一個無參構(gòu)造器个扰,并且允許使用遵循簡單命名約定的getter和setter方法來訪問屬性瓷炮。由于這個慣例,可以對任意JavaBean屬性進行簡單的聲明引用递宅。使用這種聲明引用的代碼不需要知道bean的具體類型娘香。并且,這個bean還可以被很多框架使用办龄,這些java框架也不需要知道bean的類型烘绽。由于java.io.Serializable是一個標記接口(無方法),所以這并不是一個多大的負擔(dān)俐填。如果JavaBean完全實現(xiàn)的話安接,稍微打破了一些POJO模型。很多被稱之為JavaBean的POJO類并不符合這個要求英融,因為JavaBean必須實現(xiàn)Serializable接口才能成為真正的JavaBean盏檐。

JavaBean的優(yōu)點:

The properties, events, and methods of a bean can be exposed to another application.
A bean may register to receive events from other objects and can generate events that are sent to those other objects.
Auxiliary software can be provided to help configure a bean.
The configuration settings of a bean can be saved to persistent storage and restored.

  1. bean中的屬性,事件和方法可以暴露給另一個應(yīng)用程序
  2. 一個bean可以注冊來自于其他對象的事件驶悟,也可以產(chǎn)生事件并發(fā)送給其他對象
  3. 輔助代碼可以提供javabean的配置
  4. 一個bean的配置設(shè)置可以永遠被存儲和恢復(fù)

一些疑問胡野?

  • 什么是事件?有什么作用痕鳍?bean如何注冊來自于其他對象的事件硫豆?
  • 配置設(shè)置如何被存儲和恢復(fù)?
  • serializable接口是做什么的额获?
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末够庙,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子抄邀,更是在濱河造成了極大的恐慌耘眨,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件境肾,死亡現(xiàn)場離奇詭異剔难,居然都是意外死亡胆屿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門偶宫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來非迹,“玉大人,你說我怎么就攤上這事纯趋≡魇蓿” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵吵冒,是天一觀的道長纯命。 經(jīng)常有香客問我,道長痹栖,這世上最難降的妖魔是什么亿汞? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮揪阿,結(jié)果婚禮上疗我,老公的妹妹穿的比我還像新娘。我一直安慰自己南捂,他們只是感情好吴裤,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著溺健,像睡著了一般嚼摩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上矿瘦,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機與錄音愿卒,去河邊找鬼缚去。 笑死,一個胖子當著我的面吹牛琼开,可吹牛的內(nèi)容都是我干的易结。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼柜候,長吁一口氣:“原來是場噩夢啊……” “哼搞动!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起渣刷,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤鹦肿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后辅柴,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體箩溃,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡瞭吃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了涣旨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片歪架。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖霹陡,靈堂內(nèi)的尸體忽然破棺而出和蚪,到底是詐尸還是另有隱情,我是刑警寧澤烹棉,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布攒霹,位于F島的核電站,受9級特大地震影響峦耘,放射性物質(zhì)發(fā)生泄漏剔蹋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一辅髓、第九天 我趴在偏房一處隱蔽的房頂上張望泣崩。 院中可真熱鬧,春花似錦洛口、人聲如沸矫付。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽买优。三九已至,卻和暖如春挺举,著一層夾襖步出監(jiān)牢的瞬間杀赢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工湘纵, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留脂崔,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓梧喷,卻偏偏與公主長得像砌左,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子铺敌,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容