日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

OSGi、Spring、Hibernate集成:動(dòng)態(tài)注冊(cè)實(shí)體類

 instl 2014-08-28

  網(wǎng)上提供的關(guān)于在OSGi環(huán)境下的集成Spring、Hibernat的方案總是存在以下一種或多種問題:

  1、不能提供多個(gè)SessionFactory的統(tǒng)一管理

  2、不能提供實(shí)體類的動(dòng)態(tài)注冊(cè)

  3、不方便測(cè)試

  4、平臺(tái)依賴度高

  先看看我提供的解決方案中各Bundle之間的關(guān)系圖:

  

  從上圖可看出,業(yè)務(wù)實(shí)體與業(yè)務(wù)邏輯Bundle是獨(dú)立自然的,不需要象某些解決方案把實(shí)體類作為Hibernate的Fragment。實(shí)際上,本解決方案中完全可以不將實(shí)體類在META-INF.MF文件中Export.

  解決思路:

  1、org.span.orm中定義SessionFactoryService接口并提供其抽象實(shí)現(xiàn),由org.span.orm.hibernate來實(shí)現(xiàn)這個(gè)接口。

  2、在會(huì)話工廠服務(wù)定義Bundle中通過org.span.orm和org.span.hibernate提供的類,定義SessionFactoryService服務(wù)的配置,并注冊(cè)為SessionFactoryService服務(wù)。

  3、在業(yè)務(wù)實(shí)體與業(yè)務(wù)邏輯Bundle中,注冊(cè)實(shí)體類時(shí),首先從SessionFactoryService服務(wù)中得到相關(guān)SessionFactory的配置,通過此配置來構(gòu)造一個(gè)包括了它注冊(cè)的實(shí)體類的SessionFactory,再將其中的實(shí)體類關(guān)系合并到SessionFactoryService實(shí)現(xiàn)中的SessionFactory中。這其中因org.hibernate.impl.SessionFactoryImpl中所有的實(shí)體映射關(guān)系是保存到一些不可修改的final Map對(duì)象中,因此只能通過訪問私有成員變量的方式去合并兩個(gè)SessionFactoryImpl.

     方案特性:

  每個(gè)業(yè)務(wù)實(shí)體與業(yè)務(wù)邏輯Bundle是獨(dú)立自然的

  通過SessionFactoryService服務(wù)對(duì)所有會(huì)話工廠統(tǒng)一管理。

  在SessionFactoryService服務(wù)中使用內(nèi)置HSQLDB為每個(gè)SessionFactory(根據(jù)名稱區(qū)別)提供默認(rèn)的會(huì)話工廠(使用內(nèi)存數(shù)據(jù)庫或文件數(shù)據(jù)庫),方便測(cè)試。

  方案不依賴特定OSGi平臺(tái)。

 

  源代碼、文檔及Bundle下載:http://download.csdn.net/source/2406756

  測(cè)試環(huán)境:equinox3.5.2。其它用到的Bundle包括hibernate、hibernate-annotation、hsqldb、spring、spring-osgi等。請(qǐng)到http://www./repository/下載。

      注:使用前請(qǐng)?jiān)贠SGi的啟動(dòng)目錄下建立目錄logs/jta目錄。在spring dm2下使用,需要先修改config/com.springsource.kernel.userregion.properties文件,在packageImports=后加入javax.naming.*,還需要安裝spring-osgi 2.0.0 M1相關(guān)Bundle.

 

 

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多