POJO
"Plain Ordinary Java Object",簡單普通的java對(duì)象。主要用來指代那些沒有遵循特定的java對(duì)象模型,約定或者框架的對(duì)象。
POJO的內(nèi)在含義是指那些:
有一些private的參數(shù)作為對(duì)象的屬性,然后針對(duì)每一個(gè)參數(shù)定義get和set方法訪問的接口。
沒有從任何類繼承、也沒有實(shí)現(xiàn)任何接口,更沒有被其它框架侵入的java對(duì)象。
public class BasicInfoVo {
private String orderId;
private Integer uid;
public String getOrderId() {
return orderId;
}
public void setOrderId(String orderId) {
this.orderId = orderId;
}
public Integer getUid() {
return uid;
}
public void setUid(Integer uid) {
this.uid = uid;
}}
JavaBean
JavaBean 是一種JAVA語言寫成的可重用組件。JavaBean符合一定規(guī)范編寫的Java類,不是一種技術(shù),而是一種規(guī)范。大家針對(duì)這種規(guī)范,總結(jié)了很多開發(fā)技巧、工具函數(shù)。符合這種規(guī)范的類,可以被其它的程序員或者框架使用。它的方法命名,構(gòu)造及行為必須符合特定的約定:
所有屬性為private。
這個(gè)類必須有一個(gè)公共的缺省構(gòu)造函數(shù)。即是提供無參數(shù)的構(gòu)造器。
這個(gè)類的屬性使用getter和setter來訪問,其他方法遵從標(biāo)準(zhǔn)命名規(guī)范。
這個(gè)類應(yīng)是可序列化的。實(shí)現(xiàn)serializable接口。
因?yàn)檫@些要求主要是靠約定而不是靠實(shí)現(xiàn)接口,所以許多開發(fā)者把JavaBean看作遵從特定命名約定的POJO。
public class UserInfo implements java.io.Serializable{
//實(shí)現(xiàn)serializable接口。
private static final long serialVersionUID = 1L;
private String name;
private int age;
//無參構(gòu)造器
public UserInfo() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//javabean當(dāng)中可以有其它的方法
public void userInfoPrint(){
System.out.println("");
} }
兩者有什么區(qū)別
POJO其實(shí)是比javabean更純凈的簡單類或接口。POJO嚴(yán)格地遵守簡單對(duì)象的概念,而一些JavaBean中往往會(huì)封裝一些簡單邏輯。
POJO主要用于數(shù)據(jù)的臨時(shí)傳遞,它只能裝載數(shù)據(jù), 作為數(shù)據(jù)存儲(chǔ)的載體,而不具有業(yè)務(wù)邏輯處理的能力。
Javabean雖然數(shù)據(jù)的獲取與POJO一樣,但是javabean當(dāng)中可以有其它的方法。