解釋一下什么是POJO?
在Java應用程序中的角色
使用POJO名稱是為了避免和EJB混淆起來, 而且簡稱比較直接. 其中有一些屬性及其getter setter方法的類,沒有業務邏輯,有時可以作為VO(value -object)或dto(Data Transform Object)來使用.當然,如果你有一個簡單的運算屬性也是可以的,但不允許有業務方法,也不能攜帶有connection之類的方法。
POJO是Plain Old Java Objects的縮寫不錯,但是它通指沒有使用Entity Beans的普通java對象,可以把POJO作為支持業務邏輯的協助類。
POJO有一些private的參數作為對象的屬性。然后針對每個參數定義了get和set方法作為訪問的接口。例如:
public class User { private long id; private String name;
public void setId(long id }
{ this. id = id; } public void setName(String name)
{ this. name=name; } public long getId()
{ return id; } public String getName()
{ return name; } }
POJO對象有時也被稱為Data對象,大量應用于表現現實中的對象。如果項目中使用了Hibernate框架,有一個關聯的xml文件,使對象與數據庫中的表對應,對象的屬性與表的字段對應。
錯誤的認識:
POJO是這樣的一種“純粹的”JavaBean,在它里面除了JavaBean規范的方法和屬性沒有別的東西,即private屬性以及對這個屬性方法的public的get和set方法。我們會發現這樣的JavaBean很“單純”,它只能裝載數據,作為數據存儲的載體,而不具有業務邏輯處理的能力。
真正的意思:
POJO = "Plain Ordinary Java Object",是MartinFowler等發明的一個術語,用來表示普通的Java對象,不是JavaBean, EntityBean 或者 SessionBean。POJO不擔當任何特殊的角色,也不實現任何特殊的Java框架的接口如,EJB, JDBC等等。
即POJO是一個簡單的普通的Java對象,它不包含業務邏輯或持久邏輯等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不繼承或不實現任何其它Java框架的類或接口。