欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

OSGi上部署Hibernate的方式有哪些

這篇文章主要介紹OSGi上部署Hibernate的方式有哪些,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供平邑網(wǎng)站建設(shè)、平邑做網(wǎng)站、平邑網(wǎng)站設(shè)計(jì)、平邑網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、平邑企業(yè)網(wǎng)站模板建站服務(wù),十年平邑做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

OpenCore是在OSGi規(guī)范上構(gòu)建的微內(nèi)核(Microkenerl),基于純組件(Pure Plugin)開(kāi)放源碼企業(yè)應(yīng)用軟件平臺(tái)。OpenCore數(shù)據(jù)層實(shí)現(xiàn)OSGi上集成Hibernate,Hibernate及其依賴庫(kù)作為一個(gè)單獨(dú)的插件,這樣帶來(lái)一個(gè)問(wèn)題,就是OSGi平臺(tái)的插件類加載機(jī)制使得Hibernate無(wú)法正確加載分布在不同插件內(nèi)部的模型對(duì)象與O/R映射文件。

模型對(duì)象(Domain Objects)插件

模型對(duì)象(Domain Objects)集中到獨(dú)立的插件(Bundle)內(nèi),Hibernate插件依賴這些模型對(duì)象插件。這是最簡(jiǎn)單的,也是比較糟糕的方式,比較小的基于OSGi的項(xiàng)目可以這也作做。

依賴方式:

業(yè)務(wù)插件------->Hibernate插件
|                         |
|                    \    \| /
|-----------  模型插件
/
改進(jìn)的模型對(duì)象(Domain Objects)插件

把模型對(duì)象插件當(dāng)作Hibernate插件的Fragments,依賴方式如圖:

業(yè)務(wù)插件------->Hibernate插件
/|\
|
模型插件

Eclipse-BuddyPolicy與Eclipse-RegisterBuddy方式

Equinox(Eclipse提供的OSGi實(shí)現(xiàn))平臺(tái)特有的方式,允許插件(Bundle)聲明自己的伙伴,讓“伙伴插件”來(lái)動(dòng)態(tài)加載本插件的類,這也是Hiberate與Equinox集成的官方解決方案。這種方式模型對(duì)象無(wú)需部署在單獨(dú)的插件內(nèi),與業(yè)務(wù)插件部署在一起即可,Hibernate插件也無(wú)須依賴模型對(duì)象。

具體做法如下:

首先,Hibernate插件(名稱,例如org.opengoss.orm.hibernate)聲明自身可以作為伙伴插件,自描述文件(MANIFEST.MF) 加入描述:

Eclipse-BuddyPolicy: registered

然后,模型對(duì)象的業(yè)務(wù)插件中把Hibernate插件加入為伙伴,自描述文件(MANIFEST.MF) 加入描述:

Eclipse-RegisterBuddy:org.opengoss.orm.hibernate

具體說(shuō)明文檔:

http://www.hibernate.org/311.html

http://www.ibm.com/developerworks/cn/opensource/os-ecl-osgi/index.html

注意:這種方式無(wú)法保證在Hibernate最新版本中應(yīng)用成功。大家可以再試試:)

Eclipse Extension Point方式

這是我們目前實(shí)現(xiàn)的方式,通過(guò)標(biāo)準(zhǔn)的Eclipse擴(kuò)展點(diǎn)與擴(kuò)展機(jī)制,我們?cè)贖ibernate插件中plugin.xml配置文件中聲明下述擴(kuò)展點(diǎn):

在模型對(duì)象插件中聲明擴(kuò)展,例如:

Hibernate插件的啟動(dòng)中,用代碼配置生成SessionFactory,代碼如下:

public void start(BundleContext context) throws Exception {
Configuration configuration = new Configuration().configure(new File(
"./etc/org.opengoss.database.hibernate/hibernate.cfg.xml"));
Class[] domainClasses = getDomainClasses();
for (Class domainClass : domainClasses) {
configuration.addClass(domainClass);
}
sessionFactory = configuration.buildSessionFactory();
Dictionarynew Hashtable
props.put("scope", "APPLICATION");
props.put("uid", "Hibernate:SessionFactory");
registration = context.registerService(
SessionFactory.class.getName(), sessionFactory, props);
}
private Class[] getDomainClasses() throws Exception {
List domainClasses = new ArrayList();
IExtensionPoint point = registry
.getExtensionPoint(IConstants.DOMAIN_OBJECT_EXTENSION_POINT);
IExtension[] extensions = point.getExtensions();
for (IExtension extension : extensions) {
IConfigurationElement[] elements = extension
.getConfigurationElements();
for (IConfigurationElement configurationElement : elements) {
Bundle bundle = pluginContext.getBundleBySymbolId(extension
.getNamespaceIdentifier());
Class domainClass = bundle.loadClass(configurationElement
.getAttribute("class"));
domainClasses.add(domainClass);
}
}
return domainClasses.toArray(new Class[domainClasses.size()]);
}

DynamicImport-Package: *注意:Hibernate內(nèi)部的類加載機(jī)制實(shí)在無(wú)法令人滿意,盡管我們?cè)谶@種方式中已經(jīng)加載所有的模型類對(duì)象,但Hibernate內(nèi)部仍然會(huì)調(diào)用Class.forName()去試圖加載。所以,我們不得不在其自描述文件(MANIFEST.MF) 中加入描述:

以上是“OSGi上部署Hibernate的方式有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享標(biāo)題:OSGi上部署Hibernate的方式有哪些
文章URL:http://aaarwkj.com/article18/ijpggp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司電子商務(wù)、響應(yīng)式網(wǎng)站品牌網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
国产91精品网站在线| 亚洲国产欧美日韩久久| 日本成人午夜福利电影| 久久女婷五月综合色啪色老板| 免费观看久久黄色大片| 亚洲一区二区三区三洲| 久久精品有码视频免费观看| 欧美一区二区三区高清正版| 欧美美女福利午夜视频| 日韩区一区二在线视频| 抱着操才爽的免费视频观看| 高清欧美大片免费观看| 国产国语久久91老女人| 国产精品一区二区污网站| 精品视频日韩在线观看| 女同av免费观看网站| 久草区免费在线视频播放| 日本加勒比不卡在线视频| 日韩精品一区二区三区高清| 国产精品亚洲伦理在线| 日本女同一区二区高清| 一区二区三区国产激情| 色婷婷狠狠久久综合中文一本| 日本在线免费成人高清| 日韩精品在线观看天堂| 欧美十日本亚洲激情视频| 天天干夜夜泡天天操| 97超碰97资源在线| 日本久久91跳蛋视频| 人妻中文字幕视频在线| 成人日韩av免费在线观看| 国产精品乱码精品久久久| 国产产品在线免费看91| 三级av电影中文字幕| 日韩亚洲国产激情一区二区| 求个手机免费在线观看av网址 | 久久人热视频这里只有精品| 欧美精品在线观看不卡一区| 欧美日韩在线一区二区精品| 激情亚洲不卡一区二区| 91午夜福利偷拍视频|