欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種輕量級容器的啟動(dòng)方法及系統(tǒng)與流程

文檔序號:11677206閱讀:237來源:國知局
一種輕量級容器的啟動(dòng)方法及系統(tǒng)與流程

本發(fā)明涉及輕量級容器啟動(dòng)技術(shù)領(lǐng)域,特別涉及一種輕量級容器的啟動(dòng)方法及系統(tǒng)。



背景技術(shù):

目前,對于運(yùn)行某些應(yīng)用的容器來說,啟動(dòng)的時(shí)候需要向內(nèi)存中寫入大量數(shù)據(jù),初始化時(shí)間非常長,整個(gè)啟動(dòng)過程需要耗費(fèi)大量的時(shí)間,而且每次啟動(dòng)的時(shí)候都要重復(fù)這一過程,使得用戶每次啟動(dòng)容器后都要要等待很久,不僅如此,容器的擴(kuò)展性也比較差,很難根據(jù)用戶需要進(jìn)行改進(jìn),大大降低了用戶體驗(yàn)。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明提供了一種輕量級容器的啟動(dòng)方法及系統(tǒng),解決了現(xiàn)有技術(shù)中容器啟動(dòng)耗費(fèi)時(shí)間長的技術(shù)問題。

本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種輕量級容器的啟動(dòng)方法,包括:

s1、創(chuàng)建線程,運(yùn)行bootstrap框架的boot方法,獲取啟動(dòng)參數(shù),并將輕量級容器類加載到內(nèi)存中,所述啟動(dòng)參數(shù)包括:xml配置文件、容器啟動(dòng)端口號和類的路徑;

s2、實(shí)例化所述輕量級容器類,得到輕量級容器對象;

s3、通過所述輕量級容器對象獲取所述xml配置文件以及所述xml配置文件包含的子配置文件中的服務(wù)配置信息,得到服務(wù)配置信息列表;

s4、創(chuàng)建新線程,根據(jù)所述服務(wù)配置信息列表實(shí)例化所述輕量級容器對象中定義的每個(gè)服務(wù),得到服務(wù)對象,并通過調(diào)用每個(gè)所述服務(wù)對象的初始化方法和啟動(dòng)方法對每個(gè)所述服務(wù)對象進(jìn)行初始化和啟動(dòng);

s5、當(dāng)所有所述服務(wù)對象啟動(dòng)成功時(shí),將所述輕量級容器對象的狀態(tài)設(shè)置為啟動(dòng)狀態(tài)。

本發(fā)明的有益效果是:本技術(shù)方案通過輕量級容器來管理應(yīng)用程序,通過解析啟動(dòng)參數(shù)獲取配置文件中的服務(wù)信息,通過啟動(dòng)服務(wù)來啟動(dòng)輕量級容器,不僅部署簡單、擴(kuò)展性強(qiáng),而且啟動(dòng)速度快。

在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。

優(yōu)選地,所述步驟s2中,還包括:設(shè)置java命名和目錄接口的工廠類名和系統(tǒng)屬性,初始化jmx服務(wù),創(chuàng)建新線程啟動(dòng)所述jmx服務(wù)。

優(yōu)選地,所述步驟s3包括:

s31、分別實(shí)例化所述輕量級容器對象中的服務(wù)注冊管理器、對象注冊管理器和xml配置解析器,分別得到服務(wù)注冊管理器對象、對象注冊管理器對象和xml配置解析器對象;

s32、通過所述xml配置解析器對象讀取所述啟動(dòng)參數(shù)中的所述xml配置文件以及所述xml配置文件包含的子配置文件中的服務(wù)配置信息,得到服務(wù)配置信息列表。

優(yōu)選地,所述步驟s4包括:

s41、創(chuàng)建新線程,循環(huán)獲取所述服務(wù)配置信息列表中的每個(gè)服務(wù)以及每個(gè)服務(wù)所依賴的服務(wù);

s42、實(shí)例化每個(gè)服務(wù)所依賴的服務(wù),得到子服務(wù)對象,將所述子服務(wù)對象分別注冊到所述服務(wù)注冊管理器對象和所述對象注冊管理器對象中,并將所述子服務(wù)對象綁定到所述java命名和目錄接口中,然后調(diào)用所述子服務(wù)對象的初始化方法對所述子服務(wù)對象進(jìn)行初始化;

s43、實(shí)例化每個(gè)服務(wù),得到父服務(wù)對象,將所述父服務(wù)對象分別注冊到所述服務(wù)注冊管理器對象和所述對象注冊管理器對象中,并將所述父服務(wù)對象綁定到所述java命名和目錄接口中,然后調(diào)用所述父服務(wù)對象的初始化方法對所述父服務(wù)對象進(jìn)行初始化;

s44、循環(huán)獲取所述服務(wù)注冊管理器中的每個(gè)服務(wù)對象,將當(dāng)前獲取到的服務(wù)對象注冊到所述jmx服務(wù)中,反射調(diào)用當(dāng)前獲取到服務(wù)對象的啟動(dòng)方法對當(dāng)前獲取到的服務(wù)對象進(jìn)行啟動(dòng)。

優(yōu)選地,所述步驟s5之后,還包括:

s6、將所述輕量級容器對象注冊到所述jmx服務(wù)中;

s7、給所述輕量級容器對象添加關(guān)閉鉤子。

優(yōu)選地,當(dāng)關(guān)閉所述輕量級容器對象時(shí),通過所述關(guān)閉鉤子反射調(diào)用為啟動(dòng)狀態(tài)的所有服務(wù)對象的關(guān)閉方法,注銷所述jmx對象中的所有服務(wù)對象。

優(yōu)選地,所述步驟s1中,通過該線程當(dāng)前的類加載器將輕量級容器類加載到內(nèi)存中。

優(yōu)選地,通過反射調(diào)用所述輕量級容器類的main方法將所述啟動(dòng)參數(shù)傳輸給所述輕量級容器對象。

優(yōu)選地,所述服務(wù)配置信息包括:服務(wù)id和服務(wù)配置參數(shù)信息。

一種輕量級容器的啟動(dòng)系統(tǒng),包括:

第一獲取模塊,用于創(chuàng)建線程,運(yùn)行bootstrap框架的boot方法,獲取啟動(dòng)參數(shù),并將輕量級容器類加載到內(nèi)存中,所述啟動(dòng)參數(shù)包括:xml配置文件、容器啟動(dòng)端口號和類的路徑;

第一實(shí)例化模塊,用于實(shí)例化所述輕量級容器類,得到輕量級容器對象;

第二獲取模塊,用于通過所述輕量級容器對象獲取所述xml配置文件以及所述xml配置文件包含的子配置文件中的服務(wù)配置信息,得到服務(wù)配置信息列表;

第二實(shí)例化模塊,用于創(chuàng)建新線程,根據(jù)所述服務(wù)配置信息列表實(shí)例化所述輕量級容器對象中定義的每個(gè)服務(wù),得到服務(wù)對象,并通過調(diào)用每個(gè)所述服務(wù)對象的初始化方法和啟動(dòng)方法對每個(gè)所述服務(wù)對象進(jìn)行初始化和啟動(dòng);

啟動(dòng)模塊,用于當(dāng)所有所述服務(wù)對象啟動(dòng)成功時(shí),將所述輕量級容器對象的狀態(tài)設(shè)置為啟動(dòng)狀態(tài)。

附圖說明

圖1為本發(fā)明實(shí)施例提供的一種輕量級容器的啟動(dòng)方法的流程示意圖;

圖2為本發(fā)明另一實(shí)施例提供的一種輕量級容器的啟動(dòng)方法的流程示意圖;

圖3為本發(fā)明另一實(shí)施例提供的一種輕量級容器的啟動(dòng)方法的流程示意圖;

圖4為本發(fā)明另一實(shí)施例實(shí)施例提供的一種輕量級容器的啟動(dòng)系統(tǒng)的結(jié)構(gòu)示意圖。

具體實(shí)施方式

以下結(jié)合附圖對本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。

如圖1所示,在實(shí)施例中,提供一種輕量級容器的啟動(dòng)方法,包括:

s1、創(chuàng)建線程,運(yùn)行bootstrap框架的boot方法,獲取啟動(dòng)參數(shù),并將輕量級容器類加載到內(nèi)存中,啟動(dòng)參數(shù)包括:xml配置文件、容器啟動(dòng)端口號和類的路徑;

s2、實(shí)例化輕量級容器類,得到輕量級容器對象;

s3、通過輕量級容器對象獲取xml配置文件以及xml配置文件包含的子配置文件中的服務(wù)配置信息,得到服務(wù)配置信息列表;

s4、創(chuàng)建新線程,根據(jù)服務(wù)配置信息列表實(shí)例化輕量級容器對象中定義的每個(gè)服務(wù),得到服務(wù)對象,并通過調(diào)用每個(gè)服務(wù)對象的初始化方法和啟動(dòng)方法對每個(gè)服務(wù)對象進(jìn)行初始化和啟動(dòng);

s5、當(dāng)所有服務(wù)對象啟動(dòng)成功時(shí),將輕量級容器對象的狀態(tài)設(shè)置為啟動(dòng)狀態(tài)。

上述實(shí)施例中,通過輕量級容器來管理應(yīng)用程序,通過運(yùn)行bootstrap框架的boot方法來獲取啟動(dòng)參數(shù),通過輕量級容器實(shí)例對象解析啟動(dòng)參數(shù)來獲取配置文件中的服務(wù)信息,通過啟動(dòng)服務(wù)來啟動(dòng)輕量級容器,不僅部署簡單、擴(kuò)展性強(qiáng),而且啟動(dòng)速度快。

bootstrap是基于html5和css3開發(fā)的,它在jquery的基礎(chǔ)上進(jìn)行了更為個(gè)性化和人性化的完善,形成一套自己獨(dú)有的網(wǎng)站風(fēng)格,并兼容大部分jquery插件??梢詫ootstrap中所有的css變量進(jìn)行修改,依據(jù)自己的需求裁剪代碼。

所謂容器,指應(yīng)用代碼的運(yùn)行框架。業(yè)務(wù)對象在容器里運(yùn)行,被容器管理。任何容器都應(yīng)該包含如下服務(wù):生命周期管理,查找服務(wù),配置管理,依賴解析,企業(yè)級服務(wù),線程管理,對象池,集群服務(wù),遠(yuǎn)程服務(wù)等。輕量級容器是用純java開發(fā)的,不依賴j2ee,因此,擴(kuò)展性更強(qiáng),具有非侵入性,部署簡單且可以快速啟動(dòng)。由于代碼對輕量級容器的依賴很少,因而提高了代碼的復(fù)用度,在開發(fā)過程中沒有規(guī)定必須在某個(gè)平臺下運(yùn)行;提高了可測試性,在容器之外就可以完成測試;對構(gòu)件的編寫限制很少,更好的面向?qū)ο蟆?/p>

具體地,步驟s2中,還包括:設(shè)置java命名和目錄接口的工廠類名和系統(tǒng)屬性,初始化jmx服務(wù),創(chuàng)建新線程啟動(dòng)jmx服務(wù)。

應(yīng)理解,jndi(javanaminganddirectoryinterface,java命名和目錄接口)是sun公司提供的一種標(biāo)準(zhǔn)的java命名系統(tǒng)接口,jndi提供統(tǒng)一的客戶端api,通過不同的訪問提供者接口jndi服務(wù)供應(yīng)接口(spi)的實(shí)現(xiàn),由管理者將jndiapi映射為特定的命名服務(wù)和目錄系統(tǒng),使得java應(yīng)用程序可以和這些命名服務(wù)和目錄服務(wù)之間進(jìn)行交互。

應(yīng)理解,jmx(javamanagementextensions,java管理擴(kuò)展)是一個(gè)為應(yīng)用程序、設(shè)備、系統(tǒng)等植入管理功能的框架。jmx可以跨越一系列異構(gòu)操作系統(tǒng)平臺、系統(tǒng)體系結(jié)構(gòu)和網(wǎng)絡(luò)傳輸協(xié)議,靈活的開發(fā)無縫集成的系統(tǒng)、網(wǎng)絡(luò)和服務(wù)管理應(yīng)用。jmx服務(wù)必須在輕量級容器類實(shí)例化過程中進(jìn)行初始化和啟動(dòng)只有實(shí)例化輕量級容器類,得到輕量級容器對象后,才能通過輕量級容器對象中的xml配置解析器進(jìn)行實(shí)例化,通過xml配置解析器對象讀取啟動(dòng)參數(shù)中的xml配置文件以及xml配置文件包含的子配置文件中的服務(wù)id和服務(wù)配置參數(shù)信息,生成服務(wù)配置信息列表,便于后續(xù)步驟取出服務(wù)信息。

具體地,如圖2所示,圖1中的步驟s3包括:

s31、分別實(shí)例化輕量級容器對象中的服務(wù)注冊管理器、對象注冊管理器和xml配置解析器,分別得到服務(wù)注冊管理器對象、對象注冊管理器對象和xml配置解析器對象;

s32、通過xml配置解析器對象讀取啟動(dòng)參數(shù)中的xml配置文件以及xml配置文件包含的子配置文件中的服務(wù)配置信息,得到服務(wù)配置信息列表。

具體地,如圖3所示,圖1中的步驟s4包括:

s41、創(chuàng)建新線程,循環(huán)獲取服務(wù)配置信息列表中的每個(gè)服務(wù)以及每個(gè)服務(wù)所依賴的服務(wù);

s42、實(shí)例化每個(gè)服務(wù)所依賴的服務(wù),得到子服務(wù)對象,將子服務(wù)對象分別注冊到服務(wù)注冊管理器對象和對象注冊管理器對象中,并將子服務(wù)對象綁定到j(luò)ava命名和目錄接口中,然后調(diào)用子服務(wù)對象的初始化方法對子服務(wù)對象進(jìn)行初始化;

s43、實(shí)例化每個(gè)服務(wù),得到父服務(wù)對象,將父服務(wù)對象分別注冊到服務(wù)注冊管理器對象和對象注冊管理器對象中,并將父服務(wù)對象綁定到j(luò)ava命名和目錄接口中,然后調(diào)用父服務(wù)對象的初始化方法對父服務(wù)對象進(jìn)行初始化;

s44、循環(huán)獲取服務(wù)注冊管理器中的每個(gè)服務(wù)對象,將當(dāng)前獲取到的服務(wù)對象注冊到j(luò)mx服務(wù)中,反射調(diào)用當(dāng)前獲取到服務(wù)對象的啟動(dòng)方法對當(dāng)前獲取到的服務(wù)對象進(jìn)行啟動(dòng)。

應(yīng)理解,只有服務(wù)所依賴的所有服務(wù)均實(shí)例化,才能對該服務(wù)進(jìn)行實(shí)例化,只有當(dāng)所有服務(wù)對象均啟動(dòng)成功,輕量級容器對象才算啟動(dòng)成功,如果有一個(gè)服務(wù)對象沒有啟動(dòng)成功,輕量級容器對象都不算啟動(dòng)成功;在確認(rèn)輕量級容器對象啟動(dòng)成功后,將輕量級容器對象注冊到j(luò)mx服務(wù)中,jmx服務(wù)則可以對其進(jìn)行管理。

具體地,步驟s5之后,還包括:

s6、將輕量級容器對象注冊到j(luò)mx服務(wù)中;

s7、給輕量級容器對象添加關(guān)閉鉤子。

具體地,當(dāng)關(guān)閉輕量級容器對象時(shí),通過關(guān)閉鉤子反射調(diào)用為啟動(dòng)狀態(tài)的所有服務(wù)對象的關(guān)閉方法,注銷jmx對象中的所有服務(wù)對象。

具體地,步驟s1中,通過該線程當(dāng)前的類加載器將輕量級容器類加載到內(nèi)存中。

具體地,通過反射調(diào)用輕量級容器類的main方法將啟動(dòng)參數(shù)傳輸給輕量級容器對象。

具體地,服務(wù)配置信息包括:服務(wù)id和服務(wù)配置參數(shù)信息。

如圖4所示,在另一實(shí)施例中,提供一種輕量級容器的啟動(dòng)系統(tǒng),包括:

第一獲取模塊1,用于創(chuàng)建線程,運(yùn)行bootstrap框架的boot方法,獲取啟動(dòng)參數(shù),并將輕量級容器類加載到內(nèi)存中,啟動(dòng)參數(shù)包括:xml配置文件、容器啟動(dòng)端口號和類的路徑;

第一實(shí)例化模塊2,用于實(shí)例化輕量級容器類,得到輕量級容器對象;

第二獲取模塊3,用于通過輕量級容器對象獲取xml配置文件以及xml配置文件包含的子配置文件中的服務(wù)配置信息,得到服務(wù)配置信息列表;

第二實(shí)例化模塊4,用于創(chuàng)建新線程,根據(jù)服務(wù)配置信息列表實(shí)例化輕量級容器對象中定義的每個(gè)服務(wù),得到服務(wù)對象,并通過調(diào)用每個(gè)服務(wù)對象的初始化方法和啟動(dòng)方法對每個(gè)服務(wù)對象進(jìn)行初始化和啟動(dòng);

啟動(dòng)模塊5,用于當(dāng)所有服務(wù)對象啟動(dòng)成功時(shí),將輕量級容器對象的狀態(tài)設(shè)置為啟動(dòng)狀態(tài)。

以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
长宁县| 沈丘县| 土默特右旗| 同心县| 高邮市| 珲春市| 四子王旗| 娱乐| 道真| 永登县| 黄大仙区| 邵东县| 巨鹿县| 墨脱县| 栖霞市| 大安市| 卓尼县| 惠东县| 宣汉县| 洮南市| 克什克腾旗| 许昌市| 炉霍县| 邳州市| 荔波县| 汉阴县| 喀喇| 石渠县| 安远县| 邢台市| 东兰县| 揭阳市| 逊克县| 册亨县| 凌海市| 武汉市| 通州市| 武隆县| 北辰区| 崇义县| 任丘市|