一種基于aop的構(gòu)件調(diào)用和擴(kuò)展框架實(shí)現(xiàn)方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種基于AOP的構(gòu)件調(diào)用和擴(kuò)展框架實(shí)現(xiàn)方法,包括步驟:S10:定義構(gòu)件的主實(shí)體,并配置其AOP擴(kuò)展點(diǎn);S11:對(duì)有效的擴(kuò)展點(diǎn)注冊(cè)構(gòu)件擴(kuò)展監(jiān)聽(tīng),進(jìn)行構(gòu)件擴(kuò)展定義;S12:調(diào)用定義好的構(gòu)件;S13:判斷是否存在有效的、且注冊(cè)了業(yè)務(wù)邏輯擴(kuò)展的擴(kuò)展點(diǎn),若存在,則調(diào)用業(yè)務(wù)邏輯擴(kuò)展處理器對(duì)注冊(cè)的業(yè)務(wù)邏輯擴(kuò)展監(jiān)聽(tīng)進(jìn)行處理;S14:重復(fù)步驟S12和S13,分別對(duì)構(gòu)件參數(shù)解析后的擴(kuò)展點(diǎn)、構(gòu)件調(diào)用前擴(kuò)展點(diǎn)、構(gòu)件調(diào)用后擴(kuò)展點(diǎn)進(jìn)行處理。本發(fā)明可以對(duì)構(gòu)件的調(diào)用過(guò)程進(jìn)行靈活的擴(kuò)展,按需配置整個(gè)調(diào)用過(guò)程中業(yè)務(wù)邏輯的調(diào)用過(guò)程,以更好的適應(yīng)用戶(hù)特定的業(yè)務(wù)場(chǎng)景,充分滿(mǎn)足多變的客戶(hù)需求。
【專(zhuān)利說(shuō)明】—種基于AOP的構(gòu)件調(diào)用和擴(kuò)展框架實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)信息處理【技術(shù)領(lǐng)域】,涉及一種基于AOP的構(gòu)件調(diào)用和擴(kuò)展框架實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002]最近幾十年,軟件開(kāi)發(fā)技術(shù)得到了迅猛發(fā)展,先后經(jīng)歷了從匯編語(yǔ)言、面向過(guò)程、到面向?qū)ο?、再到現(xiàn)在流行的面向構(gòu)件、面向服務(wù)開(kāi)發(fā)的過(guò)程。
[0003]面向構(gòu)件開(kāi)發(fā)是九十年代初提出的一種新的軟件開(kāi)發(fā)方式,它是在一定構(gòu)件模型的支持下,復(fù)用構(gòu)件庫(kù)中的一個(gè)或多個(gè)軟件構(gòu)件,通過(guò)組合手段高效率、高質(zhì)量地構(gòu)造應(yīng)用軟件系統(tǒng)的過(guò)程。軟件構(gòu)件相當(dāng)于工業(yè)流水線(xiàn)生產(chǎn)上的“標(biāo)準(zhǔn)件”,其最大特點(diǎn)就是可以通過(guò)不斷復(fù)用,有效的縮減開(kāi)發(fā)周期、降低成本。隨著以分布式對(duì)象為基礎(chǔ)的構(gòu)件實(shí)現(xiàn)技術(shù)日趨成熟,它已經(jīng)成為現(xiàn)今軟件復(fù)用技術(shù)的研究熱點(diǎn),被認(rèn)為是最具潛力的軟件工程發(fā)展方向之一。
[0004]在基于構(gòu)件的開(kāi)發(fā)過(guò)程中,最重要的就是要進(jìn)行細(xì)粒度的構(gòu)件定義和復(fù)用、進(jìn)行靈活的組裝和擴(kuò)展、以及已有構(gòu)件的沉淀和積累。這就需要有一個(gè)靈活、可擴(kuò)展的構(gòu)件調(diào)用和擴(kuò)展引擎、及其所依賴(lài)的企業(yè)構(gòu)件庫(kù)。
[0005]但是,目前很多現(xiàn)有的構(gòu)件調(diào)用和擴(kuò)展引擎,都存在著諸多的嚴(yán)重不足,無(wú)法滿(mǎn)足用戶(hù)對(duì)易用性、靈活組裝和強(qiáng)大的可擴(kuò)展能力、以及在構(gòu)件擴(kuò)展時(shí)進(jìn)行選擇過(guò)濾的需求。
[0006]故,針對(duì)上述目前現(xiàn)有技術(shù)存在的不足,實(shí)有必要進(jìn)行開(kāi)發(fā)研究,以提供一種方案,可以對(duì)構(gòu)件的調(diào)用過(guò)程進(jìn)行靈活的擴(kuò)展,按需配置整個(gè)調(diào)用過(guò)程中業(yè)務(wù)邏輯的調(diào)用過(guò)程,以更好的適應(yīng)用戶(hù)特定的業(yè)務(wù)場(chǎng)景,充分滿(mǎn)足多變的客戶(hù)需求。
【發(fā)明內(nèi)容】
[0007]為解決上述問(wèn)題,本發(fā)明的目的在于提供一種基于AOP的構(gòu)件調(diào)用和擴(kuò)展框架實(shí)現(xiàn)方法,可以對(duì)構(gòu)件的調(diào)用過(guò)程進(jìn)行靈活的擴(kuò)展,按需配置整個(gè)調(diào)用過(guò)程中業(yè)務(wù)邏輯的調(diào)用過(guò)程,以更好的適應(yīng)用戶(hù)特定的業(yè)務(wù)場(chǎng)景,充分滿(mǎn)足多變的客戶(hù)需求。
[0008]為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案為:
一種基于AOP的構(gòu)件調(diào)用和擴(kuò)展框架實(shí)現(xiàn)方法,包括下步驟:
510:定義構(gòu)件的主實(shí)體,并配置其AOP擴(kuò)展點(diǎn);
511:對(duì)有效的擴(kuò)展點(diǎn)注冊(cè)構(gòu)件擴(kuò)展監(jiān)聽(tīng),進(jìn)行構(gòu)件擴(kuò)展定義;
512:調(diào)用定義好的構(gòu)件;
513:判斷是否存在有效的、且注冊(cè)了業(yè)務(wù)邏輯擴(kuò)展的擴(kuò)展點(diǎn),若存在,則調(diào)用業(yè)務(wù)邏輯擴(kuò)展處理器對(duì)注冊(cè)的業(yè)務(wù)邏輯擴(kuò)展監(jiān)聽(tīng)進(jìn)行處理;
514:重復(fù)步驟S12和S13,分別對(duì)構(gòu)件參數(shù)解析后的擴(kuò)展點(diǎn)、構(gòu)件調(diào)用前擴(kuò)展點(diǎn)、構(gòu)件調(diào)用后擴(kuò)展點(diǎn)進(jìn)行處理。
[0009]進(jìn)一步地,步驟SlO中,所述的構(gòu)件主實(shí)體的定義具體包括構(gòu)件編號(hào)定義、程序集定義、待執(zhí)行方法的形參定義;主實(shí)體定義完成后,設(shè)置預(yù)定義的AOP擴(kuò)展點(diǎn)的Enable屬性;所述擴(kuò)展點(diǎn)包括構(gòu)件參數(shù)解析前擴(kuò)展、構(gòu)件參數(shù)解析后擴(kuò)展、構(gòu)件調(diào)用前擴(kuò)展、構(gòu)件調(diào)用后擴(kuò)展。
[0010]進(jìn)一步地,步驟Sll中,構(gòu)件擴(kuò)展定義包括構(gòu)件擴(kuò)展處理器組ExtHandlerGroup定義、構(gòu)件擴(kuò)展處理器ExtHandler定義、以及構(gòu)件擴(kuò)展可執(zhí)行過(guò)濾器ExtFilter定義。
[0011]進(jìn)一步地,件擴(kuò)展定義時(shí),首先定義構(gòu)件擴(kuò)展監(jiān)聽(tīng)ExtHandlerGroups的基本信息,然后定義其下的構(gòu)件擴(kuò)展處理器組ExtHandlerGroup實(shí)體列表,每一個(gè)構(gòu)件擴(kuò)展處理器組都采用雙重過(guò)濾機(jī)制,其實(shí)體包含構(gòu)件擴(kuò)展處理器ExtHandler列表和構(gòu)件擴(kuò)展可執(zhí)行過(guò)濾器ExtFilter列表。
[0012]進(jìn)一步地,步驟S12中,構(gòu)件調(diào)用引擎首先通過(guò)擴(kuò)展點(diǎn)管理器查找該構(gòu)件上有效的構(gòu)件參數(shù)解析調(diào)用前擴(kuò)展點(diǎn),及注冊(cè)在該擴(kuò)展點(diǎn)之上的業(yè)務(wù)邏輯擴(kuò)展組;其中,構(gòu)件調(diào)用引擎對(duì)一個(gè)構(gòu)件的調(diào)用具體包括:
5120:構(gòu)件參數(shù)解析,包括構(gòu)件參數(shù)解析前AOP擴(kuò)展、構(gòu)件參數(shù)解析、構(gòu)件參數(shù)解析后AOP擴(kuò)展;
5121:構(gòu)件邏輯調(diào)用,包括構(gòu)件調(diào)用前AOP擴(kuò)展、構(gòu)件業(yè)務(wù)邏輯調(diào)用、構(gòu)件調(diào)用后AOP擴(kuò)展。
[0013]進(jìn)一步地,步驟S13中,所述的構(gòu)件擴(kuò)展監(jiān)聽(tīng)的執(zhí)行包括如下步驟:
5130:遍歷構(gòu)件擴(kuò)展監(jiān)聽(tīng)(ExtHandlerGroups)中的每一個(gè)構(gòu)件擴(kuò)展處理器組;
5131:計(jì)算擴(kuò)展處理器組上的擴(kuò)展執(zhí)行過(guò)濾器鏈:如果擴(kuò)展執(zhí)行過(guò)濾器鏈上的所有擴(kuò)展執(zhí)行過(guò)濾器都校驗(yàn)通過(guò)了,才可以進(jìn)入下一步;否則,就退出該擴(kuò)展處理器組的處理,繼續(xù)遍歷下一個(gè)擴(kuò)展處理器組;
5132:對(duì)于校驗(yàn)通過(guò)的擴(kuò)展處理器組,會(huì)繼續(xù)執(zhí)行:遍歷其下的每一個(gè)擴(kuò)展處理器;
5133:擴(kuò)展處理器上也有一個(gè)擴(kuò)展執(zhí)行過(guò)濾器鏈,如果擴(kuò)展執(zhí)行過(guò)濾器鏈上的所有擴(kuò)展執(zhí)行過(guò)濾器都校驗(yàn)通過(guò)了,才可以進(jìn)入下一步;否則,就退出該擴(kuò)展處理器的處理,繼續(xù)遍歷下一個(gè)擴(kuò)展處理器;
5134:執(zhí)行擴(kuò)展執(zhí)行程序:每一個(gè)擴(kuò)展處理器都注冊(cè)有一個(gè)擴(kuò)展執(zhí)行程序,包括構(gòu)件及其參數(shù)轉(zhuǎn)換原則。期執(zhí)行過(guò)程就是根據(jù)參數(shù)轉(zhuǎn)換原則進(jìn)行生成構(gòu)件調(diào)用實(shí)參,并對(duì)該構(gòu)件進(jìn)行調(diào)用。
[0014]相較于現(xiàn)有技術(shù),本發(fā)明一種基于AOP的構(gòu)件調(diào)用和擴(kuò)展框架實(shí)現(xiàn)方法可以對(duì)構(gòu)件的調(diào)用過(guò)程進(jìn)行靈活的擴(kuò)展,按需配置整個(gè)調(diào)用過(guò)程中業(yè)務(wù)邏輯的調(diào)用過(guò)程,以更好的適應(yīng)用戶(hù)特定的業(yè)務(wù)場(chǎng)景,充分滿(mǎn)足多變的客戶(hù)需求。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0015]圖1是本發(fā)明的流程圖示;
圖2是構(gòu)件調(diào)用過(guò)程示意圖;
圖3是構(gòu)件擴(kuò)展注冊(cè)類(lèi)結(jié)構(gòu)示意圖;
圖4是構(gòu)件擴(kuò)展調(diào)用過(guò)程示意圖。
【具體實(shí)施方式】[0016]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0017]如圖1所示,本發(fā)明一種基于AOP的構(gòu)件調(diào)用和擴(kuò)展框架實(shí)現(xiàn)方法,包括如下步驟:
SlO:定義構(gòu)件的主實(shí)體,并配置其AOP擴(kuò)展點(diǎn)(AopExtPoint)
步驟SlO中,所述的構(gòu)件主實(shí)體的定義具體包括構(gòu)件編號(hào)定義、程序集定義、待執(zhí)行方法的形參定義;主實(shí)體定義完成后,設(shè)置預(yù)定義的AOP擴(kuò)展點(diǎn)的Enable屬性,改屬性為T(mén)rue時(shí)才可以被擴(kuò)展,即該擴(kuò)展點(diǎn)有效。
[0018]所述擴(kuò)展點(diǎn)包括構(gòu)件參數(shù)解析前擴(kuò)展、構(gòu)件參數(shù)解析后擴(kuò)展、構(gòu)件調(diào)用前擴(kuò)展、構(gòu)件調(diào)用后擴(kuò)展。
[0019]Sll:對(duì)有效的擴(kuò)展點(diǎn)注冊(cè)構(gòu)件擴(kuò)展監(jiān)聽(tīng),進(jìn)行構(gòu)件擴(kuò)展定義
步驟Sll中,構(gòu)件擴(kuò)展定義包括構(gòu)件擴(kuò)展處理器組ExtHandlerGroup定義、構(gòu)件擴(kuò)展處理器ExtHandler定義、以及構(gòu)件擴(kuò)展可執(zhí)行過(guò)濾器ExtFilter定義)。
[0020]構(gòu)件擴(kuò)展定義時(shí),首先定義構(gòu)件擴(kuò)展監(jiān)聽(tīng)ExtHandlerGroups的基本信息,然后定義其下的構(gòu)件擴(kuò)展處理器組ExtHandlerGroup實(shí)體列表,每一個(gè)構(gòu)件擴(kuò)展處理器組都采用雙重過(guò)濾機(jī)制,其實(shí)體包含構(gòu)件擴(kuò)展處理器ExtHandler列表和構(gòu)件擴(kuò)展可執(zhí)行過(guò)濾器ExtFilter 列表。
[0021]其中,構(gòu)件擴(kuò)展處理器ExtHandler中定義ExtFilter列表及索要執(zhí)行的擴(kuò)展業(yè)務(wù)邏輯,該業(yè)務(wù)邏輯也是一個(gè)構(gòu)件;構(gòu)件擴(kuò)展執(zhí)行過(guò)濾器ExtFilter中定義一個(gè)返回bool值得過(guò)濾條件,改過(guò)濾條件也是一個(gè)構(gòu)件。如果擴(kuò)展執(zhí)行過(guò)濾器的過(guò)濾條件返回值為true,則該擴(kuò)展可以被執(zhí)行;否則,該擴(kuò)展不能被繼續(xù)執(zhí)行。
[0022]S12:調(diào)用定義好的構(gòu)件
步驟S12中,構(gòu)件調(diào)用引擎首先通過(guò)擴(kuò)展點(diǎn)管理器查找該構(gòu)件上有效的構(gòu)件參數(shù)解析調(diào)用前擴(kuò)展點(diǎn),及注冊(cè)在該擴(kuò)展點(diǎn)之上的業(yè)務(wù)邏輯擴(kuò)展組。
[0023]構(gòu)件調(diào)用引擎對(duì)一個(gè)構(gòu)件的調(diào)用具體包括:
5120:構(gòu)件參數(shù)解析,包括構(gòu)件參數(shù)解析前AOP擴(kuò)展、構(gòu)件參數(shù)解析、構(gòu)件參數(shù)解析后AOP擴(kuò)展;
5121:構(gòu)件邏輯調(diào)用,包括構(gòu)件調(diào)用前AOP擴(kuò)展、構(gòu)件業(yè)務(wù)邏輯調(diào)用、構(gòu)件調(diào)用后AOP擴(kuò)展。
[0024]S13:判斷是否存在有效的、且注冊(cè)了業(yè)務(wù)邏輯擴(kuò)展的擴(kuò)展點(diǎn),若存在,則調(diào)用業(yè)務(wù)邏輯擴(kuò)展處理器對(duì)注冊(cè)的業(yè)務(wù)邏輯擴(kuò)展監(jiān)聽(tīng)進(jìn)行處理。
[0025]步驟S13中,所述的構(gòu)件擴(kuò)展監(jiān)聽(tīng)的執(zhí)行包括如下步驟:
5130:遍歷構(gòu)件擴(kuò)展監(jiān)聽(tīng)(ExtHandlerGroups)中的每一個(gè)構(gòu)件擴(kuò)展處理器組;
5131:計(jì)算擴(kuò)展處理器組上的擴(kuò)展執(zhí)行過(guò)濾器鏈:如果擴(kuò)展執(zhí)行過(guò)濾器鏈上的所有擴(kuò)展執(zhí)行過(guò)濾器都校驗(yàn)通過(guò)了,才可以進(jìn)入下一步;否則,就退出該擴(kuò)展處理器組的處理,繼續(xù)遍歷下一個(gè)擴(kuò)展處理器組。
[0026]S132:對(duì)于校驗(yàn)通過(guò)的擴(kuò)展處理器組,會(huì)繼續(xù)執(zhí)行:遍歷其下的每一個(gè)擴(kuò)展處理器。[0027]S133:擴(kuò)展處理器上也有一個(gè)擴(kuò)展執(zhí)行過(guò)濾器鏈,如果擴(kuò)展執(zhí)行過(guò)濾器鏈上的所有擴(kuò)展執(zhí)行過(guò)濾器都校驗(yàn)通過(guò)了,才可以進(jìn)入下一步;否則,就退出該擴(kuò)展處理器的處理,繼續(xù)遍歷下一個(gè)擴(kuò)展處理器。
[0028]S134:執(zhí)行擴(kuò)展執(zhí)行程序:每一個(gè)擴(kuò)展處理器都注冊(cè)有一個(gè)擴(kuò)展執(zhí)行程序,包括構(gòu)件及其參數(shù)轉(zhuǎn)換原則。期執(zhí)行過(guò)程就是根據(jù)參數(shù)轉(zhuǎn)換原則進(jìn)行生成構(gòu)件調(diào)用實(shí)參,并對(duì)該構(gòu)件進(jìn)行調(diào)用。
[0029]S14:重復(fù)步驟S12和S13,分別對(duì)構(gòu)件參數(shù)解析后的擴(kuò)展點(diǎn)、構(gòu)件調(diào)用前擴(kuò)展點(diǎn)、構(gòu)件調(diào)用后擴(kuò)展點(diǎn)進(jìn)行處理。
[0030]本發(fā)明實(shí)施例中,構(gòu)件調(diào)用引擎對(duì)一個(gè)構(gòu)件的調(diào)用時(shí)依次執(zhí)行:構(gòu)件參數(shù)解析前AOP擴(kuò)展、構(gòu)件參數(shù)解析后AOP擴(kuò)展、構(gòu)件調(diào)用前AOP擴(kuò)展、構(gòu)件調(diào)用后AOP擴(kuò)展,共4個(gè)AOP擴(kuò)展點(diǎn)。
[0031]本發(fā)明通過(guò)引入AOP機(jī)制,在構(gòu)件調(diào)用過(guò)程中設(shè)置多個(gè)固定的AOP擴(kuò)展點(diǎn),與傳統(tǒng)的基于事件的擴(kuò)展點(diǎn)相結(jié)合,使得本發(fā)明比其他構(gòu)件調(diào)用引擎在擴(kuò)展機(jī)制上更加靈活,并同時(shí)支持了基于條件的構(gòu)件編排功能。同時(shí),本發(fā)明提供了一套基于多重條件鏈過(guò)濾的擴(kuò)展執(zhí)行框架,通過(guò)分別對(duì)構(gòu)件擴(kuò)展處理器進(jìn)行分組,可以靈活的支持多種方案分組和分層擴(kuò)展;通過(guò)引入擴(kuò)展可執(zhí)行過(guò)濾器,達(dá)到可以動(dòng)態(tài)的對(duì)擴(kuò)展構(gòu)件進(jìn)行條件編排和動(dòng)態(tài)過(guò)濾的目的;而且擴(kuò)展可執(zhí)行過(guò)濾器可以配置在擴(kuò)展處理器組、擴(kuò)展處理器上,以便于更好的進(jìn)行方案分組和提聞校驗(yàn)效率。
[0032]如圖2所示,本發(fā)明實(shí)施例中,該具有AOP擴(kuò)展功能的構(gòu)件調(diào)用引擎,對(duì)一個(gè)構(gòu)件的調(diào)用過(guò)程分為如下:
構(gòu)件參數(shù)解析,包括構(gòu)件參數(shù)解析前AOP擴(kuò)展、構(gòu)件參數(shù)解析、構(gòu)件參數(shù)解析后AOP擴(kuò)
展;
構(gòu)件邏輯調(diào)用,包括構(gòu)件調(diào)用前AOP擴(kuò)展、構(gòu)件業(yè)務(wù)邏輯調(diào)用、構(gòu)件調(diào)用后AOP擴(kuò)展。
[0033]如圖3所示,本發(fā)明實(shí)施例中,構(gòu)件擴(kuò)展監(jiān)聽(tīng)ExtHandlerGroups注冊(cè)在構(gòu)件的一個(gè)AOP擴(kuò)展點(diǎn)上,一個(gè)擴(kuò)展點(diǎn)至多只能定義一個(gè)構(gòu)件擴(kuò)展監(jiān)聽(tīng)。構(gòu)件擴(kuò)展處理器組ExtHandlerGroup對(duì)應(yīng)于一個(gè)擴(kuò)展方案或者場(chǎng)景,包含構(gòu)件擴(kuò)展處理器ExtHandler列表和構(gòu)件擴(kuò)展可執(zhí)行過(guò)濾器ExtFilter列表。而構(gòu)件擴(kuò)展處理器ExtHandler是構(gòu)件擴(kuò)展業(yè)務(wù)邏輯的載體,其定義了 ExtFilter列表及索要執(zhí)行的擴(kuò)展業(yè)務(wù)邏輯,該業(yè)務(wù)邏輯也是一個(gè)構(gòu)件。構(gòu)件擴(kuò)展執(zhí)行過(guò)濾器ExtFilter是構(gòu)件擴(kuò)展處理器或者構(gòu)件擴(kuò)展處理器組是否可被執(zhí)行的一系列過(guò)濾條件,其定義了一個(gè)返回bool值得過(guò)濾條件,改過(guò)濾條件也是一個(gè)構(gòu)件。如果擴(kuò)展執(zhí)行過(guò)濾器的過(guò)濾條件返回值為true,則該擴(kuò)展可以被執(zhí)行;否則,該擴(kuò)展不能被繼續(xù)執(zhí)行。
[0034]如圖4所示,對(duì)構(gòu)件擴(kuò)展監(jiān)聽(tīng)的執(zhí)行過(guò)程為如下:
遍歷構(gòu)件擴(kuò)展監(jiān)聽(tīng)(ExtHandlerGroups)中的每一個(gè)構(gòu)件擴(kuò)展處理器組;
計(jì)算擴(kuò)展處理器組上的擴(kuò)展執(zhí)行過(guò)濾器鏈:如果擴(kuò)展執(zhí)行過(guò)濾器鏈上的所有擴(kuò)展執(zhí)行過(guò)濾器都校驗(yàn)通過(guò)了,才可以進(jìn)入下一步;否則,就退出該擴(kuò)展處理器組的處理,繼續(xù)遍歷下一個(gè)擴(kuò)展處理器組。
[0035]對(duì)于校驗(yàn)通過(guò)的擴(kuò)展處理器組,會(huì)繼續(xù)執(zhí)行:遍歷其下的每一個(gè)擴(kuò)展處理器。
[0036]擴(kuò)展處理器上也有一個(gè)擴(kuò)展執(zhí)行過(guò)濾器鏈,如果擴(kuò)展執(zhí)行過(guò)濾器鏈上的所有擴(kuò)展執(zhí)行過(guò)濾器都校驗(yàn)通過(guò)了,才可以進(jìn)入下一步;否則,就退出該擴(kuò)展處理器的處理,繼續(xù)遍歷下一個(gè)擴(kuò)展處理器。
[0037]執(zhí)行擴(kuò)展執(zhí)行程序:每一個(gè)擴(kuò)展處理器都注冊(cè)有一個(gè)擴(kuò)展執(zhí)行程序,包括構(gòu)件及其參數(shù)轉(zhuǎn)換原則。期執(zhí)行過(guò)程就是根據(jù)參數(shù)轉(zhuǎn)換原則進(jìn)行生成構(gòu)件調(diào)用實(shí)參,并對(duì)該構(gòu)件進(jìn)行調(diào)用。
[0038]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種基于AOP的構(gòu)件調(diào)用和擴(kuò)展框架實(shí)現(xiàn)方法,其特征在于,包括如下步驟: S10:定義構(gòu)件的主實(shí)體,并配置其AOP擴(kuò)展點(diǎn); S11:對(duì)有效的擴(kuò)展點(diǎn)注冊(cè)構(gòu)件擴(kuò)展監(jiān)聽(tīng),進(jìn)行構(gòu)件擴(kuò)展定義; S12:調(diào)用定義好的構(gòu)件; S13:判斷是否存在有效的、且注冊(cè)了業(yè)務(wù)邏輯擴(kuò)展的擴(kuò)展點(diǎn),若存在,則調(diào)用業(yè)務(wù)邏輯擴(kuò)展處理器對(duì)注冊(cè)的業(yè)務(wù)邏輯擴(kuò)展監(jiān)聽(tīng)進(jìn)行處理; S14:重復(fù)步驟S12和S13,分別對(duì)構(gòu)件參數(shù)解析后的擴(kuò)展點(diǎn)、構(gòu)件調(diào)用前擴(kuò)展點(diǎn)、構(gòu)件調(diào)用后擴(kuò)展點(diǎn)進(jìn)行處理。
2.根據(jù)權(quán)利要求1所述基于AOP的構(gòu)件調(diào)用和擴(kuò)展框架實(shí)現(xiàn)方法,其特征在于:步驟SlO中,所述的構(gòu)件主實(shí)體的定義具體包括構(gòu)件編號(hào)定義、程序集定義、待執(zhí)行方法的形參定義;主實(shí)體定義完成后,設(shè)置預(yù)定義的AOP擴(kuò)展點(diǎn)的Enable屬性;所述擴(kuò)展點(diǎn)包括構(gòu)件參數(shù)解析前擴(kuò)展、構(gòu)件參數(shù)解析后擴(kuò)展、構(gòu)件調(diào)用前擴(kuò)展、構(gòu)件調(diào)用后擴(kuò)展。
3.根據(jù)權(quán)利要求2所述基于AOP的構(gòu)件調(diào)用和擴(kuò)展框架實(shí)現(xiàn)方法,其特征在于:步驟Sll中,構(gòu)件擴(kuò)展定義包括構(gòu)件擴(kuò)展處理器組ExtHandlerGroup定義、構(gòu)件擴(kuò)展處理器ExtHandler定義、以及構(gòu)件擴(kuò)展可執(zhí)行過(guò)濾器ExtFilter定義。
4.根據(jù)權(quán)利要求3所述基于AOP的構(gòu)件調(diào)用和擴(kuò)展框架實(shí)現(xiàn)方法,其特征在于:構(gòu)件擴(kuò)展定義時(shí),首先定義構(gòu)件擴(kuò)展監(jiān)聽(tīng)ExtHandlerGroups的基本信息,然后定義其下的構(gòu)件擴(kuò)展處理器組ExtHandlerGroup實(shí)體列表,每一個(gè)構(gòu)件擴(kuò)展處理器組都采用雙重過(guò)濾機(jī)制,其實(shí)體包含構(gòu)件擴(kuò)展處理器ExtHandler列表和構(gòu)件擴(kuò)展可執(zhí)行過(guò)濾器ExtFilter列表。
5.根據(jù)權(quán)利要求4所述基于AOP的構(gòu)件調(diào)用和擴(kuò)展框架實(shí)現(xiàn)方法,其特征在于:步驟S12中,構(gòu)件調(diào)用引擎首先通過(guò)擴(kuò)展點(diǎn)管理器查找該構(gòu)件上有效的構(gòu)件參數(shù)解析調(diào)用前擴(kuò)展點(diǎn),及注冊(cè)在該擴(kuò)展點(diǎn)之上的業(yè)務(wù)邏輯擴(kuò)展組;其中,構(gòu)件調(diào)用引擎對(duì)一個(gè)構(gòu)件的調(diào)用具體包括: 5120:構(gòu)件參數(shù)解析,包括構(gòu)件參數(shù)解析前AOP擴(kuò)展、構(gòu)件參數(shù)解析、構(gòu)件參數(shù)解析后AOP擴(kuò)展; 5121:構(gòu)件邏輯調(diào)用,包括構(gòu)件調(diào)用前AOP擴(kuò)展、構(gòu)件業(yè)務(wù)邏輯調(diào)用、構(gòu)件調(diào)用后AOP擴(kuò)展。
6.根據(jù)權(quán)利要求5所述基于AOP的構(gòu)件調(diào)用和擴(kuò)展框架實(shí)現(xiàn)方法,其特征在于,步驟S13中,所述的構(gòu)件擴(kuò)展監(jiān)聽(tīng)的執(zhí)行包括如下步驟: S130:遍歷構(gòu)件擴(kuò)展監(jiān)聽(tīng)(ExtHandlerGroups)中的每一個(gè)構(gòu)件擴(kuò)展處理器組; S131:計(jì)算擴(kuò)展處理器組上的擴(kuò)展執(zhí)行過(guò)濾器鏈:如果擴(kuò)展執(zhí)行過(guò)濾器鏈上的所有擴(kuò)展執(zhí)行過(guò)濾器都校驗(yàn)通過(guò)了,才可以進(jìn)入下一步;否則,就退出該擴(kuò)展處理器組的處理,繼續(xù)遍歷下一個(gè)擴(kuò)展處理器組; S132:對(duì)于校驗(yàn)通過(guò)的擴(kuò)展處理器組,會(huì)繼續(xù)執(zhí)行:遍歷其下的每一個(gè)擴(kuò)展處理器; S133:擴(kuò)展處理器上也有一個(gè)擴(kuò)展執(zhí)行過(guò)濾器鏈,如果擴(kuò)展執(zhí)行過(guò)濾器鏈上的所有擴(kuò)展執(zhí)行過(guò)濾器都校驗(yàn)通過(guò)了,才可以進(jìn)入下一步;否則,就退出該擴(kuò)展處理器的處理,繼續(xù)遍歷下一個(gè)擴(kuò)展處理器; S134:執(zhí)行擴(kuò)展執(zhí)行程序:每一個(gè)擴(kuò)展處理器都注冊(cè)有一個(gè)擴(kuò)展執(zhí)行程序,包括構(gòu)件及其參數(shù)轉(zhuǎn)換原則,期執(zhí)行過(guò)程就是根據(jù)參數(shù)轉(zhuǎn)換原則進(jìn)行生成構(gòu)件調(diào)用實(shí)參,并對(duì)該構(gòu)件進(jìn)行調(diào) 用。
【文檔編號(hào)】G06F9/44GK103793232SQ201410057757
【公開(kāi)日】2014年5月14日 申請(qǐng)日期:2014年2月20日 優(yōu)先權(quán)日:2014年2月20日
【發(fā)明者】戴海宏 申請(qǐng)人:浪潮集團(tuán)山東通用軟件有限公司