国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

JAVABEAN EJB POJO區(qū)別

2019-11-11 06:57:24
字體:
供稿:網(wǎng)友

javaBEAN EJB POJO區(qū)別

1、POJO

    POJO(Plain Old Java Object)這種叫法是Martin Fowler、Rebecca Parsons和Josh MacKenzie在2000年的一次演講的時(shí)候提出來的。按照Martin Fowler的解釋是“Plain Old Java Object”,從字面上翻譯為“純潔老式的java對(duì)象”,但大家都使用“簡(jiǎn)單java對(duì)象”來稱呼它。

 

POJO的內(nèi)在含義是指那些:

有一些PRivate的參數(shù)作為對(duì)象的屬性,然后針對(duì)每一個(gè)參數(shù)定義get和set方法訪問的接口。

沒有從任何類繼承、也沒有實(shí)現(xiàn)任何接口,更沒有被其它框架侵入的java對(duì)象。

復(fù)制代碼
public class User {        private String name;      private int age;        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;      }    } 復(fù)制代碼

2、JavaBean

JavaBean 是一種JAVA語言寫成的可重用組件。JavaBean符合一定規(guī)范編寫的Java類,不是一種技術(shù),而是一種規(guī)范。大家針對(duì)這種規(guī)范,總結(jié)了很多開發(fā)技巧、工具函數(shù)。符合這種規(guī)范的類,可以被其它的程序員或者框架使用。它的方法命名,構(gòu)造及行為必須符合特定的約定:

1、所有屬性為private。

2、這個(gè)類必須有一個(gè)公共的缺省構(gòu)造函數(shù)。即是提供無參數(shù)的構(gòu)造器。

3、這個(gè)類的屬性使用getter和setter來訪問,其他方法遵從標(biāo)準(zhǔn)命名規(guī)范。

4、這個(gè)類應(yīng)是可序列化的。實(shí)現(xiàn)serializable接口。 

因?yàn)檫@些要求主要是靠約定而不是靠實(shí)現(xiàn)接口,所以許多開發(fā)者把JavaBean看作遵從特定命名約定的POJO。

復(fù)制代碼
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("");      }  }  復(fù)制代碼

兩者有什么區(qū)別?

POJO其實(shí)是比javabean更純凈的簡(jiǎn)單類或接口。POJO嚴(yán)格地遵守簡(jiǎn)單對(duì)象的概念,而一些JavaBean中往往會(huì)封裝一些簡(jiǎn)單邏輯。

pojo的格式是用于數(shù)據(jù)的臨時(shí)傳遞,它只能裝載數(shù)據(jù), 作為數(shù)據(jù)存儲(chǔ)的載體,而不具有業(yè)務(wù)邏輯處理的能力。

而javabean雖然數(shù)據(jù)的獲取與pojo一樣,但是javabean當(dāng)中可以有其它的方法。

 

3、DAO

DAO(data access objects)DAO是數(shù)據(jù)訪問對(duì)象,DAO一般有接口和該接口的實(shí)現(xiàn)類,接口用于規(guī)范實(shí)現(xiàn)類。實(shí)現(xiàn)類一般用于操作數(shù)據(jù)庫,如對(duì)數(shù)據(jù)庫進(jìn)行修改、添加、刪除等操作,一般直接調(diào)用公共類DAO。 什么是DTO(data transfer object)、什么是VO(value object)、什么是PO(persistent object)?我們通過DAO將POJO持久化為PO,用PO組裝出來VO、DTO??偨Y(jié)下,我認(rèn)為一個(gè)對(duì)象究竟是什么O要看具體環(huán)境,在不同的層、不同的應(yīng)用場(chǎng)合,對(duì)象的身份也不一樣,而且對(duì)象身份的轉(zhuǎn)化也是很自然的。就像你對(duì)老婆來說就是老公,對(duì)父母來說就是子女。設(shè)計(jì)這些概念的初衷不是為了唬人而是為了更好的理解和處理各種邏輯,讓大家能更好的去用面向?qū)ο蟮姆绞教幚韱栴}。比如:我們一張表有100個(gè)字段,那么對(duì)應(yīng)的PO就有100個(gè)屬性。但是我們界面上只要顯示10個(gè)字段,客戶端用WEBservice來獲取數(shù)據(jù),沒有必要把整個(gè)PO對(duì)象傳遞到客戶端,這時(shí)我們就可以用只有這10個(gè)屬性的DTO來傳遞結(jié)果到客戶端,這樣也不會(huì)暴露服務(wù)端表結(jié)構(gòu).到達(dá)客戶端以后,如果用這個(gè)對(duì)象來對(duì)應(yīng)界面顯示,那此時(shí)它的身份就轉(zhuǎn)為VO。什么是BO(business object)?BO: POJO在業(yè)務(wù)層的體現(xiàn),對(duì)于業(yè)務(wù)操作來說,更多的是從業(yè)務(wù)上來包裝對(duì)象,如一個(gè)User的BO,可能包括name, age, sex, privilege, group等,這些屬性在數(shù)據(jù)庫中可能會(huì)在多張表中,因?yàn)槊恳粡埍韺?duì)應(yīng)一個(gè)PO,而我們的BO需要這些PO組合起來(或說重新拼裝)才能成為業(yè)務(wù)上的一個(gè)完整對(duì)象。4、EJBEJB(Enterprise JavaBean): 我認(rèn)為它是一組"功能"JavaBean的集合。上面說了JavaBean是實(shí)現(xiàn)了一種規(guī)范的Java對(duì)象。這里說EJB是一組JavaBean,的意思是這一組JavaBean組合起來實(shí)現(xiàn)了某個(gè)企業(yè)組的業(yè)務(wù)邏輯。這里的一組JavaBean不是亂組合的,它們要滿足能實(shí)現(xiàn)某項(xiàng)業(yè)務(wù)功能的搭配。找個(gè)比方,對(duì)于一身穿著來說,包括一頂帽子,一件衣服,一條褲子,兩只鞋。這穿著就是EJB,其它的就是一個(gè)JavaBeanSSH與EJB區(qū)別EJB是一種javabean的組合規(guī)范,SSH是3個(gè)框架jar包的組合。EJB本身是JavaEE的規(guī)范由容器廠商負(fù)責(zé)實(shí)現(xiàn),也就是使用EJB,需要使用JavaEE服務(wù)器。而用SSH,直接用Web服務(wù)器, SSH中要解決的目標(biāo)和EJB是一致的。EJB是大型的,SSH是輕量級(jí)的。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 富宁县| 新沂市| 延寿县| 蕉岭县| 鄱阳县| 正蓝旗| 积石山| 聊城市| 凌云县| 二手房| 无为县| 温宿县| 九台市| 济宁市| 通州市| 高碑店市| 府谷县| 锡林浩特市| 郁南县| 武义县| 娱乐| 安化县| 涞水县| 寿光市| 钟祥市| 盐山县| 辽宁省| 武陟县| 寿阳县| 嘉荫县| 台前县| 海林市| 杂多县| 原平市| 大名县| 保靖县| 油尖旺区| 定远县| 闽清县| 松滋市| 巫山县|