一種插件配置方法
【技術領域】
[0001]本發(fā)明涉及插件處理的技術領域,特別是涉及一種插件配置方法。
【背景技術】
[0002]在軟件開發(fā)中,為了方便對軟件進行功能擴展,往往采用插件方式進行開發(fā),將軟件所能實現(xiàn)的一個一個功能封裝在插件中,最后將各個插件集成在軟件主程序包中,通過與主程序代碼文件一同發(fā)布實現(xiàn)插件的加載。但是在開發(fā)過程中軟件的不能功能之間往往存在相互引用的問題,這樣不便于管理,為了簡化部署和維護系統(tǒng),本發(fā)明發(fā)明了一種插件配置方法。
【發(fā)明內(nèi)容】
[0003]本發(fā)明發(fā)明了一種插件配置方法,包含以下步驟:
設置基礎插件接口模塊步驟:設置一基礎插件接口模塊,該基礎插件接口模塊中包含插件名稱屬性和參數(shù)為主程序的方法;
設置其他插件接口模塊步驟:其他插件接口模塊繼承上述基礎插件接口模塊的屬性,各插件接口模塊對其相應的名稱屬性分別進行設置,并對其主程序的方法設置為接收主系統(tǒng)框架,在主系統(tǒng)框架綁定事件監(jiān)聽;
配置插件文件步驟:根據(jù)各個插件的應用配置對插件接口進行配置,通過XML文件,寫明需要配置的插件接口模塊的文件名稱和該插件接口模塊是否是系統(tǒng)必備的插件接口模塊;
加載必備的插件接口模塊步驟:使用1adPlugin ()函數(shù)對必備的插件接口模塊進行加載,將已經(jīng)加載的插件接口插入到已啟動插件列表中;
加載其他插件接口模塊步驟:當需要加載上述非系統(tǒng)必備的插件接口模塊時,到插件指定的目錄下讀取該插件接口模塊信息,判斷需要啟動的插件接口模塊是否存在,如果存在使用1adPlugin ()函數(shù)對該插件接口模塊進行加載,將已經(jīng)加載的插件接口插入到已啟動插件列表中;
系統(tǒng)啟動時,當各個插件接口模塊之間產(chǎn)生互動時,如果插件接口模塊發(fā)送消息給另一插件接口模塊,判斷該另一插件接口模塊是否已經(jīng)加載,如果未加載,則進行上述加載其他插件接口模塊步驟,然后對發(fā)送的消息進行接收;如果插件接口模塊發(fā)送消息時未指定接收消息的插件接口模塊,則將該消息發(fā)送至已啟動插件插件列表中存在的所有的插件接口模塊。
[0004]在配置插件文件步驟中,AssemblyPath表示要配置的插件接口模塊,F(xiàn)irstLoading設置為true時表示為必備插件接口模塊,設置為false時表示為其它插件接口模塊。
[0005]所述的1adplugin函數(shù)實現(xiàn)的邏輯為通過系統(tǒng)框架中的反射類,反射指定類部的所有類型,通過遍歷的方式找到需要加載的插件,將該加載的插件插入到已啟動插件類表中。
[0006]通過本發(fā)明發(fā)明的一種插件配置方法,針對不同資源分成不同的模塊,其中不同的模塊之間不存在相互應用,通過消息事件進行互動,減少了耦合性,可以為不同的企業(yè)、部門和個人方便地配置出不同功能插件組合的系統(tǒng),極大的簡化了部署和維護。
【具體實施方式】
[0007]本發(fā)明發(fā)明的一種插件配置方法,包含以下步驟:
設置基礎插件接口模塊步驟:設置一基礎插件接口模塊ipluginlibrary,該基礎插件接口模塊中包含插件名稱屬性pluginname和參數(shù)為主程序的方法;
設置其他插件接口模塊步驟:其他插件接口模塊繼承上述基礎插件接口模塊ipluginlibrary的屬性,各插件接口模塊對其相應的名稱屬性pluginname分別進行設置,名稱屬性的返回值為末本插件dll動態(tài)鏈接庫名稱,如“goldnt.commands, dll”,并對其主程序的方法設置為接收主系統(tǒng)框架,在主系統(tǒng)框架綁定事件監(jiān)聽;
配置插件文件步驟:根據(jù)各個插件的應用配置對插件接口進行配置,通過XML文件,寫明需要配置的插件接口模塊的文件名稱和該插件接口模塊是否是系統(tǒng)必備的插件接口模塊,配置插件文件格式為:<plugin assemblypath=” goldnt.commands, dll”firstloading=”true”>其中asseblypath表示要加載插件的文件dll文件名,即為上述中的goldnt.command; f irstloading為true表示必備的插件接口模塊,為false表示其他插件接口 1吳塊;
加載必備的插件接口模塊步驟:使用1adPlugin ()函數(shù)對必備的插件接口模塊,即對firstloading為true的插件接口模塊進行加載,將已經(jīng)加載的插件接口插入到已啟動插件列表中;
加載其他插件接口模塊步驟:當需要加載上述非系統(tǒng)必備的插件接口模塊時,即對firstloading為false的插件接口模塊進行加載時,到插件指定的目錄下讀取該插件接口模塊信息,判斷需要啟動的插件接口模塊是否存在,如果存在使用1adPlugin ()函數(shù)對該插件接口模塊進行加載,將已經(jīng)加載的插件接口插入到已啟動插件列表中;
系統(tǒng)啟動時,當各個插件接口模塊之間產(chǎn)生互動時,如果插件接口模塊發(fā)送消息給另一插件接口模塊,判斷該另一插件接口模塊是否已經(jīng)加載,如果未加載,則進行上述加載其他插件接口模塊步驟,然后對發(fā)送的消息進行接收;如果插件接口模塊發(fā)送消息時未指定接收消息的插件接口模塊,則將該消息發(fā)送至已啟動插件插件列表中存在的所有的插件接口模塊。
[0008]上述的1adplugin函數(shù)實現(xiàn)的邏輯為通過系統(tǒng)框架中的反射類,反射指定類部的所有類型,通過遍歷的方式找到需要加載的插件,將該加載的插件插入到已啟動插件類表中。
【主權項】
1.一種插件配置方法,其特征在于,包括以下步驟: 設置基礎插件接口模塊步驟:設置一基礎插件接口模塊,該基礎插件接口模塊中包含插件名稱屬性和參數(shù)為主程序的方法; 設置其他插件接口模塊步驟:其他插件接口模塊繼承上述基礎插件接口模塊的屬性,各插件接口模塊對其相應的名稱屬性分別進行設置,并對其主程序的方法設置為接收主系統(tǒng)框架,在主系統(tǒng)框架綁定事件監(jiān)聽; 配置插件文件步驟:根據(jù)各個插件的應用配置對插件接口進行配置,通過XML文件,寫明需要配置的插件接口模塊的文件名稱和該插件接口模塊是否是系統(tǒng)必備的插件接口模塊; 加載必備的插件接口模塊步驟:使用1adPlugin ()函數(shù)對必備的插件接口模塊進行加載,將已經(jīng)加載的插件接口插入到已啟動插件列表中; 加載其他插件接口模塊步驟:當需要加載上述非系統(tǒng)必備的插件接口模塊時,到插件指定的目錄下讀取該插件接口模塊信息,判斷需要啟動的插件接口模塊是否存在,如果存在使用1adPlugin ()函數(shù)對該插件接口模塊進行加載,將已經(jīng)加載的插件接口插入到已啟動插件列表中; 系統(tǒng)啟動時,當各個插件接口模塊之間產(chǎn)生互動時,如果插件接口模塊發(fā)送消息給另一插件接口模塊,判斷該另一插件接口模塊是否已經(jīng)加載,如果未加載,則進行上述加載其他插件接口模塊步驟,然后對發(fā)送的消息進行接收;如果插件接口模塊發(fā)送消息時未指定接收消息的插件接口模塊,則將該消息發(fā)送至已啟動插件插件列表中存在的所有的插件接口模塊。
2.如權利要求1所述的一種插件配置方法,其特征在于,在配置插件文件步驟中,AssemblyPath表示要配置的插件接口模塊,F(xiàn)irstLoading設置為true時表示為必備插件接口模塊,設置為false時表示為其它插件接口模塊。
3.如權利要求1所述的一種插件配置方法,其特征在于,所述的1adplugin函數(shù)實現(xiàn)的邏輯為通過系統(tǒng)框架中的反射類,反射指定類部的所有類型,通過遍歷的方式找到需要加載的插件,將該加載的插件插入到已啟動插件類表中。
【專利摘要】一種插件配置方法,屬于插件處理的技術領域,主要包括設置基礎插件接口模塊步驟、設置其他插件接口模塊步驟、配置插件文件步驟、加載必備的插件接口模塊步驟以及加載其他插件接口模塊步驟。通過本發(fā)明發(fā)明的一種插件配置方法,針對不同資源分成不同的模塊,其中不同的模塊之間不存在相互應用,通過消息事件進行互動,減少了耦合性,可以為不同的企業(yè)、部門和個人方便地配置出不同功能插件組合的系統(tǒng),極大的簡化了部署和維護。
【IPC分類】G06F9-44
【公開號】CN104572030
【申請?zhí)枴緾N201310463689
【發(fā)明人】丁力
【申請人】鎮(zhèn)江金鈦軟件有限公司
【公開日】2015年4月29日
【申請日】2013年10月9日