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