簡單分析Hibernate業(yè)務(wù)層
在向大家詳細(xì)介紹Hibernate業(yè)務(wù)層之前,首先讓大家了解下Hibernate是什么,然后全面介紹Hibernate業(yè)務(wù)層。
Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進(jìn)行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。
Hibernate業(yè)務(wù)層
在一個典型的web應(yīng)用程序的中間的組件是Hibernate業(yè)務(wù)層或服務(wù)層。從編碼的視角來看,這個服務(wù)層是最容易被忽視的一層。不難在用戶接口(UI)層或者持久層里找到散布在其中的這種類型的代碼。這不是正確的地方,因?yàn)檫@導(dǎo)致了應(yīng)用程序的緊耦合,這樣一來,隨著時間推移代碼將很難維護(hù)。幸好,針對這一問題有好幾種Frameworks存在。在這個領(lǐng)域兩個最流行的框架是Spring和PicoContainer,它們叫作微容器(microcontainers),你可以不費(fèi)力不費(fèi)神的把你的對象連在一起。所有這些框架都工作在一個簡單的叫作“依賴注入”(dependency injection)(也通稱“控制反轉(zhuǎn)”(inversion of control))的概念上。Spring也提供了一個構(gòu)建器注入(constructor injection)的復(fù)雜形式作為setter注入的一個替代。對象們被一個簡單的XML文件連在一起,這個XML文件含有到像事務(wù)管理器(transaction management handler)、對象工廠(object factories)、包含業(yè)務(wù)邏輯的服務(wù)對象(service objects)、和數(shù)據(jù)存取對象(DAO)這些對象的引用(references)。
Hibernate業(yè)務(wù)層應(yīng)該負(fù)責(zé)下面這些事情:
◆處理應(yīng)用程序的業(yè)務(wù)邏輯和業(yè)務(wù)驗(yàn)證;
◆管理事務(wù);
◆預(yù)留和其它層交互的接口;
◆管理Hibernate業(yè)務(wù)層對象之間的依賴;
◆增加在表現(xiàn)層和持久層之間的靈活性,使它們互不直接通訊;
◆從表現(xiàn)層中提供一個上下文(context)給Hibernate業(yè)務(wù)層獲得業(yè)務(wù)服務(wù)(business services );
◆管理從業(yè)務(wù)邏輯到持久層的實(shí)現(xiàn)。
【編輯推薦】