本申請(qǐng)涉及計(jì)算機(jī)領(lǐng)域,具體而言,涉及一種數(shù)據(jù)處理方法和裝置。
背景技術(shù):
現(xiàn)有技術(shù)中,可以通過playframework框架在mvc模型中標(biāo)注緩存注解,例如,標(biāo)注緩存注解@cache,但是該注解僅能標(biāo)注在控制器(controller)層,用于緩存數(shù)據(jù)。然而,發(fā)明人發(fā)現(xiàn),對(duì)于模型(modle)層方法級(jí)別的注解配置是不支持的。由于在模型(modle)層不支持注解配置實(shí)現(xiàn)數(shù)據(jù)緩存,因此,當(dāng)需要對(duì)模型(modle)層的數(shù)據(jù)進(jìn)行緩存時(shí),通過現(xiàn)有的緩存方法增加了業(yè)務(wù)人員的工作量。
針對(duì)上述的問題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)實(shí)施例提供了一種數(shù)據(jù)處理方法和裝置,以至少解決由于現(xiàn)有技術(shù)中無法緩存業(yè)務(wù)邏輯的處理結(jié)果的技術(shù)問題。
根據(jù)本申請(qǐng)實(shí)施例的一個(gè)方面,提供了一種數(shù)據(jù)處理方法,包括:獲取目標(biāo)業(yè)務(wù)數(shù)據(jù);調(diào)用目標(biāo)業(yè)務(wù)邏輯對(duì)應(yīng)的程序代碼,其中,所述目標(biāo)業(yè)務(wù)邏輯用于處理所述目標(biāo)業(yè)務(wù)數(shù)據(jù);執(zhí)行所述目標(biāo)業(yè)務(wù)邏輯對(duì)應(yīng)的程序代碼對(duì)所述目標(biāo)業(yè)務(wù)數(shù)據(jù)進(jìn)行處理,得到處理結(jié)果;檢測(cè)所述程序代碼中是否標(biāo)記有預(yù)設(shè)注解,其中,所述預(yù)設(shè)注解用于表示所述目標(biāo)業(yè)務(wù)邏輯為待緩存的業(yè)務(wù)邏輯;在檢測(cè)到所述程序代碼中標(biāo)記有所述預(yù)設(shè)注解的情況下,緩存所述處理結(jié)果至目標(biāo)存儲(chǔ)器中。
進(jìn)一步地,在檢測(cè)到所述程序代碼中標(biāo)記有所述預(yù)設(shè)注解的情況下,緩存所述處理結(jié)果至目標(biāo)存儲(chǔ)器中包括:在檢測(cè)到所述程序代碼中標(biāo)記有所述預(yù)設(shè)注解的情況下,調(diào)用所述目標(biāo)業(yè)務(wù)邏輯的代理對(duì)象,其中,所述代理對(duì)象為預(yù)先設(shè)置的用于控制所述目標(biāo)業(yè)務(wù)邏輯進(jìn)行緩存的對(duì)象;通過所述代理對(duì)象緩存所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果至所述目標(biāo)存儲(chǔ)器中。
進(jìn)一步地,通過所述代理對(duì)象緩存所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果至所述目標(biāo)存儲(chǔ)器中包括:獲取所述程序代碼中所標(biāo)記的所述預(yù)設(shè)注解的索引鍵值;通過所述索引鍵 值在預(yù)設(shè)處理結(jié)果中查找所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果,其中,所述預(yù)設(shè)處理結(jié)果為已緩存在所述目標(biāo)存儲(chǔ)器中的目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果;在所述索引鍵值未查找到所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果的情況下,緩存所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果至所述目標(biāo)存儲(chǔ)器中。
進(jìn)一步地,在所述索引鍵值查找到所述處理結(jié)果的情況下,所述方法還包括:獲取所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果的數(shù)據(jù)類型;從所述目標(biāo)存儲(chǔ)器中調(diào)用所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果,其中,所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果以字符串形式存儲(chǔ)于所述目標(biāo)存儲(chǔ)器中;將調(diào)用到的字符串形式的所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果轉(zhuǎn)化為所述數(shù)據(jù)類型的目標(biāo)結(jié)果,并返回所述目標(biāo)結(jié)果。
進(jìn)一步地,所述方法還包括:在存儲(chǔ)所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果至所述目標(biāo)存儲(chǔ)器之后經(jīng)過預(yù)設(shè)時(shí)間,清除所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果,其中,所述預(yù)設(shè)時(shí)間為預(yù)先設(shè)置于所述預(yù)設(shè)注解中用于控制所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果在所述目標(biāo)存儲(chǔ)器中存儲(chǔ)的時(shí)間。
根據(jù)本申請(qǐng)實(shí)施例的另一方面,還提供了一種數(shù)據(jù)處理裝置,包括:第一獲取單元,用于獲取目標(biāo)業(yè)務(wù)數(shù)據(jù);第一調(diào)用單元,用于調(diào)用目標(biāo)業(yè)務(wù)邏輯對(duì)應(yīng)的程序代碼,其中,所述目標(biāo)業(yè)務(wù)邏輯用于處理所述目標(biāo)業(yè)務(wù)數(shù)據(jù);執(zhí)行單元,用于執(zhí)行所述目標(biāo)業(yè)務(wù)邏輯對(duì)應(yīng)的程序代碼對(duì)所述目標(biāo)業(yè)務(wù)數(shù)據(jù)進(jìn)行處理,得到處理結(jié)果;檢測(cè)單元,用于檢測(cè)所述程序代碼中是否標(biāo)記有預(yù)設(shè)注解,其中,所述預(yù)設(shè)注解用于表示所述目標(biāo)業(yè)務(wù)邏輯為待緩存的業(yè)務(wù)邏輯;緩存單元,用于在檢測(cè)到所述程序代碼中標(biāo)記有所述預(yù)設(shè)注解的情況下,緩存所述處理結(jié)果至目標(biāo)存儲(chǔ)器中。
進(jìn)一步地,所述緩存單元包括:調(diào)用模塊,用于在檢測(cè)到所述程序代碼中標(biāo)記有所述預(yù)設(shè)注解的情況下,調(diào)用所述目標(biāo)業(yè)務(wù)邏輯的代理對(duì)象,其中,所述代理對(duì)象為預(yù)先設(shè)置的用于控制所述目標(biāo)業(yè)務(wù)邏輯進(jìn)行緩存的對(duì)象;緩存模塊,用于通過所述代理對(duì)象緩存所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果至所述目標(biāo)存儲(chǔ)器中。
進(jìn)一步地,所述緩存模塊包括:獲取子模塊,用于獲取所述程序代碼中所標(biāo)記的所述預(yù)設(shè)注解的索引鍵值;查找子模塊,用于通過所述索引鍵值在預(yù)設(shè)處理結(jié)果中查找所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果,其中,所述預(yù)設(shè)處理結(jié)果為已緩存在所述目標(biāo)存儲(chǔ)器中的目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果;緩存子模塊,用于在所述索引鍵值未查找到所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果的情況下,緩存所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果至所述目標(biāo)存儲(chǔ)器中。
進(jìn)一步地,所述裝置還包括:第二獲取單元,用于在所述索引鍵值查找到所述處 理結(jié)果的情況下,獲取所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果的數(shù)據(jù)類型;第二調(diào)用單元,用于從所述目標(biāo)存儲(chǔ)器中調(diào)用所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果,其中,所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果以字符串形式存儲(chǔ)于所述目標(biāo)存儲(chǔ)器中;轉(zhuǎn)化單元,用于將調(diào)用到的字符串形式的所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果轉(zhuǎn)化為所述數(shù)據(jù)類型的目標(biāo)結(jié)果,并返回所述目標(biāo)結(jié)果。
進(jìn)一步地,所述裝置還包括:清除單元,用于在存儲(chǔ)所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果至所述目標(biāo)存儲(chǔ)器之后經(jīng)過預(yù)設(shè)時(shí)間,清除所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果,其中,所述預(yù)設(shè)時(shí)間為預(yù)先設(shè)置于所述預(yù)設(shè)注解中用于控制所述目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果在所述目標(biāo)存儲(chǔ)器中存儲(chǔ)的時(shí)間。
在本申請(qǐng)實(shí)施例中,采用獲取目標(biāo)業(yè)務(wù)數(shù)據(jù);調(diào)用目標(biāo)業(yè)務(wù)邏輯對(duì)應(yīng)的程序代碼,其中,所述目標(biāo)業(yè)務(wù)邏輯用于處理所述目標(biāo)業(yè)務(wù)數(shù)據(jù);執(zhí)行所述目標(biāo)業(yè)務(wù)邏輯對(duì)應(yīng)的程序代碼對(duì)所述目標(biāo)業(yè)務(wù)數(shù)據(jù)進(jìn)行處理,得到處理結(jié)果;檢測(cè)所述程序代碼中是否標(biāo)記有預(yù)設(shè)注解,其中,所述預(yù)設(shè)注解用于表示所述目標(biāo)業(yè)務(wù)邏輯為待緩存的業(yè)務(wù)邏輯;在檢測(cè)到所述程序代碼中標(biāo)記有所述預(yù)設(shè)注解的情況下,緩存所述處理結(jié)果至目標(biāo)存儲(chǔ)器中的方式,通過調(diào)用到的目標(biāo)業(yè)務(wù)邏輯的程序代碼對(duì)目標(biāo)業(yè)務(wù)數(shù)據(jù)進(jìn)行處理,得到處理結(jié)果;然后,檢測(cè)該程序代碼中是否標(biāo)記用于表示緩存該目標(biāo)業(yè)務(wù)邏輯的預(yù)設(shè)注解,如果檢測(cè)到該預(yù)設(shè)注解的情況下,將目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果緩存至目標(biāo)存儲(chǔ)器中,相對(duì)于現(xiàn)有技術(shù)中不能通過標(biāo)記注解的方式來實(shí)現(xiàn)業(yè)務(wù)邏輯的處理結(jié)果的緩存,達(dá)到了通過標(biāo)記預(yù)設(shè)注解實(shí)現(xiàn)自動(dòng)對(duì)目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果自動(dòng)實(shí)現(xiàn)緩存的目的,從而實(shí)現(xiàn)了自動(dòng)緩目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果的技術(shù)效果,進(jìn)而解決了由于現(xiàn)有技術(shù)中無法緩存業(yè)務(wù)邏輯的處理結(jié)果的技術(shù)問題。
附圖說明
此處所說明的附圖用來提供對(duì)本申請(qǐng)的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本申請(qǐng)的示意性實(shí)施例及其說明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:
圖1是根據(jù)本申請(qǐng)實(shí)施例的一種數(shù)據(jù)處理方法的流程圖;以及
圖2是根據(jù)本申請(qǐng)實(shí)施例的一種數(shù)據(jù)處理裝置的示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本申請(qǐng)方案,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例 僅僅是本申請(qǐng)一部分的實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請(qǐng)保護(hù)的范圍。
需要說明的是,本申請(qǐng)的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本申請(qǐng)的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
為了便于描述,以下對(duì)本申請(qǐng)涉及的一些術(shù)語和概念進(jìn)行說明:
類:是面向?qū)ο蟮某绦蜷_發(fā)語言中一種復(fù)雜的數(shù)據(jù)類型,是將不同類型的數(shù)據(jù)和與這些數(shù)據(jù)相關(guān)的操作封裝在一起的集合體,其中,類是對(duì)象的抽象,而對(duì)象是類的具體實(shí)例。
playframework框架:是一個(gè)全棧(full-stack)的javaweb應(yīng)用框架,包括一個(gè)簡單的無狀態(tài)mvc模型。
mvc模型:為一種軟件設(shè)計(jì)典范,為一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的組織代碼,包括模型(model)、視圖(view)、控制器(controller)。
javassit:是一個(gè)開源的分析、編輯和創(chuàng)建java字節(jié)碼的類庫,可以給指定的類進(jìn)行字節(jié)碼增強(qiáng),其優(yōu)點(diǎn)是簡單、快速。直接使用java編碼的形式,而不需要了解虛擬機(jī)指令,就能動(dòng)態(tài)改變類的結(jié)構(gòu),或者動(dòng)態(tài)生成類。
緩存:一種將數(shù)據(jù)存在計(jì)算機(jī)內(nèi)存中的方式。
根據(jù)本申請(qǐng)實(shí)施例,提供了一種數(shù)據(jù)處理方法的實(shí)施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
圖1是根據(jù)本申請(qǐng)實(shí)施例的一種數(shù)據(jù)處理方法的流程圖,如圖1所示,該方法包括如下步驟:
步驟s102,獲取目標(biāo)業(yè)務(wù)數(shù)據(jù)。
具體地,目標(biāo)業(yè)務(wù)數(shù)據(jù)可以為待處理的數(shù)據(jù),例如,用戶a的姓名,以及用戶a對(duì)應(yīng)的年齡,性別等數(shù)據(jù)信息。
步驟s104,調(diào)用目標(biāo)業(yè)務(wù)邏輯對(duì)應(yīng)的程序代碼,其中,目標(biāo)業(yè)務(wù)邏輯用于處理目標(biāo)業(yè)務(wù)數(shù)據(jù)。
在本申請(qǐng)實(shí)施例中,目標(biāo)業(yè)務(wù)邏輯用于按照一定的規(guī)則處理目標(biāo)業(yè)務(wù)數(shù)據(jù),也可以理解為,每個(gè)目標(biāo)業(yè)務(wù)邏輯都對(duì)應(yīng)一組程序代碼,該程序代碼用于實(shí)現(xiàn)該目標(biāo)業(yè)務(wù)邏輯,其中,目標(biāo)業(yè)務(wù)邏輯可以為多個(gè),還可以為一個(gè)。例如,在多個(gè)用戶中選取年齡大于25的用戶,并返回用戶的名字,即為一個(gè)目標(biāo)業(yè)務(wù)邏輯,且該目標(biāo)業(yè)務(wù)邏輯對(duì)應(yīng)一組程序代碼,該程序代碼用于完成在目標(biāo)業(yè)務(wù)數(shù)據(jù)中選取年齡大于25歲的用戶,并返回用戶的姓名。
需要說明的是,類是將不同類型的業(yè)務(wù)數(shù)據(jù)和與這些業(yè)務(wù)數(shù)據(jù)相關(guān)的業(yè)務(wù)邏輯封裝在一起的集合體,其中,類是對(duì)象的抽象,而對(duì)象是類的具體實(shí)例,在本申請(qǐng)?zhí)峁┑臄?shù)據(jù)處理方法中,每個(gè)目標(biāo)業(yè)務(wù)邏輯均可以理解為類中的一個(gè)對(duì)象。
步驟s106,執(zhí)行目標(biāo)業(yè)務(wù)邏輯對(duì)應(yīng)的程序代碼對(duì)目標(biāo)業(yè)務(wù)數(shù)據(jù)進(jìn)行處理,得到處理結(jié)果。
在程序執(zhí)行的過程中,會(huì)執(zhí)行每個(gè)目標(biāo)業(yè)務(wù)邏輯對(duì)應(yīng)的程序代碼,執(zhí)行每組代碼之后,均會(huì)得到一個(gè)結(jié)果,該結(jié)果即為目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果。
步驟s108,檢測(cè)程序代碼中是否標(biāo)記有預(yù)設(shè)注解,其中,預(yù)設(shè)注解用于表示目標(biāo)業(yè)務(wù)邏輯為待緩存的業(yè)務(wù)邏輯。
具體地,業(yè)務(wù)人員可以預(yù)先在需要緩存功能的目標(biāo)業(yè)務(wù)邏輯對(duì)應(yīng)的程序代碼中標(biāo)記預(yù)設(shè)注解,該預(yù)設(shè)注解可以表示為@playcacheable,其中,該預(yù)設(shè)注解表示將目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果進(jìn)行緩存。
步驟s110,在檢測(cè)到程序代碼中標(biāo)記有預(yù)設(shè)注解的情況下,緩存處理結(jié)果至目標(biāo)存儲(chǔ)器中。
當(dāng)程序在執(zhí)行的過程中,若檢測(cè)到該程序代碼中標(biāo)記有預(yù)設(shè)注解@playcacheable,則確定需要將該目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果進(jìn)行緩存。
在本申請(qǐng)實(shí)施例中,通過調(diào)用到的目標(biāo)業(yè)務(wù)邏輯的程序代碼對(duì)目標(biāo)業(yè)務(wù)數(shù)據(jù)進(jìn)行處理,得到處理結(jié)果;然后,檢測(cè)該程序代碼中是否標(biāo)記用于表示緩存該目標(biāo)業(yè)務(wù)邏輯的預(yù)設(shè)注解,如果檢測(cè)到該預(yù)設(shè)注解的情況下,將目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果緩存至目標(biāo)存儲(chǔ)器中,相對(duì)于現(xiàn)有技術(shù)中不能通過標(biāo)記注解的方式來實(shí)現(xiàn)業(yè)務(wù)邏輯的處理結(jié) 果的緩存,達(dá)到了通過標(biāo)記預(yù)設(shè)注解實(shí)現(xiàn)自動(dòng)對(duì)目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果自動(dòng)實(shí)現(xiàn)緩存的目的,從而實(shí)現(xiàn)了自動(dòng)緩目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果的技術(shù)效果,進(jìn)而解決了由于現(xiàn)有技術(shù)中無法緩存業(yè)務(wù)邏輯的處理結(jié)果的技術(shù)問題。
可選地,在檢測(cè)到程序代碼中標(biāo)記有預(yù)設(shè)注解的情況下,緩存處理結(jié)果至目標(biāo)存儲(chǔ)器中包括如下步驟:
步驟s1101,在檢測(cè)到程序代碼中標(biāo)記有預(yù)設(shè)注解的情況下,調(diào)用目標(biāo)業(yè)務(wù)邏輯的代理對(duì)象,其中,代理對(duì)象為預(yù)先設(shè)置的用于控制目標(biāo)業(yè)務(wù)邏輯進(jìn)行緩存的對(duì)象。
步驟s1103,通過代理對(duì)象緩存目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果至目標(biāo)存儲(chǔ)器中。
具體地,在執(zhí)行目標(biāo)業(yè)務(wù)邏輯的程序代碼的過程中,若檢測(cè)到該程序代碼中攜帶有該預(yù)設(shè)注解@playcacheable,則調(diào)用預(yù)設(shè)已設(shè)置的代理對(duì)象,并通過該代理對(duì)象將目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果存儲(chǔ)至目標(biāo)存儲(chǔ)器中(例如,計(jì)算機(jī)的內(nèi)存)。
例如,任意一個(gè)目標(biāo)業(yè)務(wù)邏輯為:在多個(gè)用戶中選取年齡大于25的用戶,并返回用戶的名字,且該目標(biāo)業(yè)務(wù)邏輯對(duì)應(yīng)的程序代碼中已標(biāo)記預(yù)設(shè)注解@playcacheable。相應(yīng)地,在執(zhí)行該程序代碼之后,將該程序代碼的處理結(jié)果存儲(chǔ)至目標(biāo)存儲(chǔ)器中。假設(shè),年齡大于25歲的用戶有“張三”和“李四”,則將“張三”和“李四”按照一定的格式存儲(chǔ)在計(jì)算機(jī)的內(nèi)存中。需要說明的是,在計(jì)算機(jī)的內(nèi)存中,“張三”和“李四”可以按照字符串或者二進(jìn)制代碼的形式存儲(chǔ)。
需要說明的是,代理對(duì)象為預(yù)先設(shè)置的,用于控制目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果進(jìn)行緩存的對(duì)象。該代理對(duì)象的設(shè)置方法可以有很多種,在本申請(qǐng)實(shí)施例中,可以編寫一個(gè)工廠類cachefactory,該工廠類的功能是根據(jù)已標(biāo)記預(yù)設(shè)注解@playcacheable的程序代碼的相關(guān)信息來創(chuàng)建代理對(duì)象,其中,可以通過javassit中的代理工廠(proxyfactory)以動(dòng)態(tài)字節(jié)碼的方式生成。該代理對(duì)象除繼承了目標(biāo)業(yè)務(wù)邏輯的全部功能之外,還具有將該目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果進(jìn)行緩存的功能。
可選地,通過代理對(duì)象緩存目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果至目標(biāo)存儲(chǔ)器中包括如下步驟:
步驟s1,獲取程序代碼中所標(biāo)記的預(yù)設(shè)注解的索引鍵值。
步驟s3,通過索引鍵值在預(yù)設(shè)處理結(jié)果中查找目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果,其中,預(yù)設(shè)處理結(jié)果為已緩存在目標(biāo)存儲(chǔ)器中的目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果。
步驟s5,在索引鍵值未查找到目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果的情況下,緩存目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果至目標(biāo)存儲(chǔ)器中。
需要說明的是,在本申請(qǐng)實(shí)施例中,預(yù)設(shè)注解@playcacheable中包括索引鍵值key,該索引鍵值key的功能是在目標(biāo)存儲(chǔ)器中已緩存的預(yù)設(shè)處理結(jié)果中查找該目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果。其中,由于目標(biāo)業(yè)務(wù)鍵值的處理結(jié)果可能預(yù)先已存儲(chǔ)于目標(biāo)存儲(chǔ)器中,因此,需通過索引鍵值在目標(biāo)存儲(chǔ)器中查找目標(biāo)業(yè)務(wù)鍵值的處理結(jié)果是否已緩存。
如果索引鍵值的返回值為空,則說明在目標(biāo)存儲(chǔ)器中未查找到該處理結(jié)果,則此時(shí)將目標(biāo)業(yè)務(wù)鍵值的處理結(jié)果以字符串的形式或者以二進(jìn)制的形式存儲(chǔ)于目標(biāo)存儲(chǔ)器中。
例如,任意一個(gè)目標(biāo)業(yè)務(wù)邏輯為:在多個(gè)用戶中選取年齡大于25的用戶,并返回用戶的名字,并且在該目標(biāo)業(yè)務(wù)邏輯對(duì)應(yīng)的程序代碼中已標(biāo)記該預(yù)設(shè)注解@playcacheable,此時(shí),將年齡大于25歲的用戶的姓名(例如,“張三”和“李四”)存儲(chǔ)在目標(biāo)存儲(chǔ)器中。在存儲(chǔ)之前,通過key值在預(yù)設(shè)處理結(jié)果查找是否已存儲(chǔ)該處理結(jié)果(例如,“張三”和“李四”的相關(guān)信息),如果未查找到“張三”和“李四”的相關(guān)信息時(shí),則將“張三”和“李四”以字符串或者二進(jìn)制的形式存儲(chǔ)于目標(biāo)存儲(chǔ)器中。
可選地,在索引鍵值查找到處理結(jié)果的情況下,該數(shù)據(jù)處理方法還包括如下步驟:
步驟s7,獲取目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果的數(shù)據(jù)類型。
步驟s9,從目標(biāo)存儲(chǔ)器中調(diào)用目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果,其中,目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果以字符串形式存儲(chǔ)于目標(biāo)存儲(chǔ)器中。
步驟s11,將調(diào)用到的字符串形式的目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果轉(zhuǎn)化為數(shù)據(jù)類型的目標(biāo)結(jié)果,并返回目標(biāo)結(jié)果。
具體地,如果通過索引鍵值(key值)在目標(biāo)存儲(chǔ)器中已存儲(chǔ)的預(yù)設(shè)處理結(jié)果中查找到該目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果,則需從目標(biāo)存儲(chǔ)器中將該處理結(jié)果調(diào)用出來,并將該處理結(jié)果的類型轉(zhuǎn)化為數(shù)據(jù)類型(returntype類型),得到目標(biāo)結(jié)果,并將該目標(biāo)結(jié)果返回給編程人員。
需要說明的是,在目標(biāo)存儲(chǔ)器中預(yù)先緩存的預(yù)設(shè)處理結(jié)果是以字符串的形式(或者二進(jìn)制)的形式存儲(chǔ)的,而返回給編程人員結(jié)果需為對(duì)象(objection)形式的結(jié)果,因此,需要將在目標(biāo)存儲(chǔ)器中調(diào)用的處理結(jié)果的類型轉(zhuǎn)化為數(shù)據(jù)類型。例如,任意處理結(jié)果:“張三”和“李四”是以字符串或者二進(jìn)制的形式存儲(chǔ)于目標(biāo)存儲(chǔ)器中,則需將該字符串或者二進(jìn)制形式的處理結(jié)果轉(zhuǎn)化為對(duì)象形式的目標(biāo)結(jié)果,例如:張三、李四。
在本申請(qǐng)實(shí)施例中,通過代理對(duì)象將攜帶預(yù)設(shè)注解的目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果進(jìn)行緩存的過程中需要兩個(gè)輔助類,即:方法過濾器和方法處理器。
方法過濾器的功能是根據(jù)指定類的屬性信息獲取該指定類中標(biāo)攜帶有預(yù)設(shè)注解@playcacheable的對(duì)象。還可以理解為,在程序執(zhí)行的過程中,通過該方法過濾器檢測(cè)目標(biāo)業(yè)務(wù)邏輯的程序代碼中是否標(biāo)記有預(yù)設(shè)注解。
方法處理器的功能是處理上面方法過濾器中過濾得到的方法(例如,方法methoda)。還可以理解為,方法處理器對(duì)攜帶有預(yù)設(shè)注解的目標(biāo)業(yè)務(wù)邏輯執(zhí)行上述步驟s1至步驟s11的處理過程。
可選地,數(shù)據(jù)處理方法還包括如下步驟:在存儲(chǔ)目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果至目標(biāo)存儲(chǔ)器之后經(jīng)過預(yù)設(shè)時(shí)間,清除目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果,其中,預(yù)設(shè)時(shí)間為預(yù)先設(shè)置于預(yù)設(shè)注解中用于控制目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果在目標(biāo)存儲(chǔ)器中存儲(chǔ)的時(shí)間。
具體地,在預(yù)設(shè)注解@playcacheable中還包括預(yù)設(shè)時(shí)間(duration),該預(yù)設(shè)時(shí)間又可以稱為失效時(shí)間,即目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果在目標(biāo)存儲(chǔ)器中存儲(chǔ)的時(shí)間。
在存儲(chǔ)目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果至目標(biāo)存儲(chǔ)器的時(shí)刻,讀取該預(yù)設(shè)注解@playcacheable中的預(yù)設(shè)時(shí)間(duration),并開始計(jì)時(shí),經(jīng)過預(yù)設(shè)時(shí)間之后,將該處理結(jié)果清除,釋放內(nèi)存空間,防止出現(xiàn)數(shù)據(jù)過大而導(dǎo)致的計(jì)算機(jī)運(yùn)行緩慢等問題。
本申請(qǐng)實(shí)施例還提供了一種數(shù)據(jù)處理裝置,該裝置可以用于執(zhí)行本申請(qǐng)實(shí)施例的數(shù)據(jù)處理方法。
圖2是根據(jù)本申請(qǐng)實(shí)施例的一種數(shù)據(jù)處理裝置的示意圖,如圖2所示,該裝置包括第一獲取單元10、第一調(diào)用單元20、執(zhí)行單元30、檢測(cè)單元40和緩存單元50,其中:
第一獲取單元10,用于獲取目標(biāo)業(yè)務(wù)數(shù)據(jù)。
具體地,目標(biāo)業(yè)務(wù)數(shù)據(jù)可以為待處理的數(shù)據(jù),例如,用戶a的姓名,以及用戶a對(duì)應(yīng)的年齡,性別等數(shù)據(jù)信息。
第一調(diào)用單元20,用于調(diào)用目標(biāo)業(yè)務(wù)邏輯對(duì)應(yīng)的程序代碼,其中,目標(biāo)業(yè)務(wù)邏輯用于處理目標(biāo)業(yè)務(wù)數(shù)據(jù)。
在本申請(qǐng)實(shí)施例中,目標(biāo)業(yè)務(wù)邏輯用于按照一定的規(guī)則處理該目標(biāo)業(yè)務(wù)數(shù)據(jù),也可以理解為,每個(gè)目標(biāo)業(yè)務(wù)邏輯都對(duì)應(yīng)一組程序代碼,該程序代碼用于實(shí)現(xiàn)該目標(biāo)業(yè)務(wù)邏輯,其中,目標(biāo)業(yè)務(wù)邏輯可以為多個(gè),還可以為一個(gè)。例如,在多個(gè)用戶中選取 年齡大于25的用戶,并返回用戶的名字,即為一個(gè)目標(biāo)業(yè)務(wù)邏輯,且該目標(biāo)業(yè)務(wù)邏輯對(duì)應(yīng)一組程序代碼,來完成在目標(biāo)業(yè)務(wù)數(shù)據(jù)中選取年齡大于25歲的用戶,并返回用戶的姓名。
需要說明的是,類是將不同類型的業(yè)務(wù)數(shù)據(jù)和與這些業(yè)務(wù)數(shù)據(jù)相關(guān)的業(yè)務(wù)邏輯封裝在一起的集合體,其中,類是對(duì)象的抽象,而對(duì)象是類的具體實(shí)例,在本申請(qǐng)?zhí)峁┑臄?shù)據(jù)處理方法中,每個(gè)目標(biāo)業(yè)務(wù)邏輯均可以理解為類中的一個(gè)對(duì)象。
執(zhí)行單元30,用于執(zhí)行目標(biāo)業(yè)務(wù)邏輯對(duì)應(yīng)的程序代碼對(duì)目標(biāo)業(yè)務(wù)數(shù)據(jù)進(jìn)行處理,得到處理結(jié)果。
在程序執(zhí)行的過程中,會(huì)執(zhí)行每個(gè)目標(biāo)業(yè)務(wù)邏輯對(duì)應(yīng)的程序代碼,執(zhí)行每組代碼之后,均會(huì)得到一個(gè)結(jié)果,該結(jié)果即為目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果。
檢測(cè)單元40,用于檢測(cè)程序代碼中是否標(biāo)記有預(yù)設(shè)注解,其中,預(yù)設(shè)注解用于表示目標(biāo)業(yè)務(wù)邏輯為待緩存的業(yè)務(wù)邏輯。
具體地,業(yè)務(wù)人員可以預(yù)先在需要緩存功能的目標(biāo)業(yè)務(wù)邏輯對(duì)應(yīng)的程序代碼中標(biāo)記預(yù)設(shè)注解,該預(yù)設(shè)注解可以表示為@playcacheable,其中,該預(yù)設(shè)注解表示將目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果進(jìn)行緩存。
緩存單元50,用于在檢測(cè)到程序代碼中標(biāo)記有預(yù)設(shè)注解的情況下,緩存處理結(jié)果至目標(biāo)存儲(chǔ)器中。
當(dāng)程序在執(zhí)行的過程中,若檢測(cè)到該程序代碼中標(biāo)記有預(yù)設(shè)注解@playcacheable,則確定需要將該目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果進(jìn)行緩存。
在本申請(qǐng)實(shí)施例中,通過調(diào)用到的目標(biāo)業(yè)務(wù)邏輯的程序代碼對(duì)目標(biāo)業(yè)務(wù)數(shù)據(jù)進(jìn)行處理,得到處理結(jié)果;然后,檢測(cè)該程序代碼中是否標(biāo)記用于表示緩存該目標(biāo)業(yè)務(wù)邏輯的預(yù)設(shè)注解,如果檢測(cè)到該預(yù)設(shè)注解的情況下,將目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果緩存至目標(biāo)存儲(chǔ)器中,相對(duì)于現(xiàn)有技術(shù)中不能通過標(biāo)記注解的方式來實(shí)現(xiàn)業(yè)務(wù)邏輯的處理結(jié)果的緩存,達(dá)到了通過標(biāo)記預(yù)設(shè)注解實(shí)現(xiàn)自動(dòng)對(duì)目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果自動(dòng)實(shí)現(xiàn)緩存的目的,從而實(shí)現(xiàn)了自動(dòng)緩目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果的技術(shù)效果,進(jìn)而解決了由于現(xiàn)有技術(shù)中無法緩存業(yè)務(wù)邏輯的處理結(jié)果的技術(shù)問題。
可選地,緩存單元包括:調(diào)用模塊,用于在檢測(cè)到程序代碼中標(biāo)記有預(yù)設(shè)注解的情況下,調(diào)用目標(biāo)業(yè)務(wù)邏輯的代理對(duì)象,其中,代理對(duì)象為預(yù)先設(shè)置的用于控制目標(biāo)業(yè)務(wù)邏輯進(jìn)行緩存的對(duì)象;緩存模塊,用于通過代理對(duì)象緩存目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果至目標(biāo)存儲(chǔ)器中。
具體地,在執(zhí)行目標(biāo)業(yè)務(wù)邏輯的程序代碼的過程中,若檢測(cè)到該程序代碼中攜帶有該預(yù)設(shè)注解@playcacheable,則通過調(diào)用模塊調(diào)用預(yù)設(shè)已設(shè)置的代理對(duì)象,并通過緩存模塊將目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果存儲(chǔ)至目標(biāo)存儲(chǔ)器中(例如,計(jì)算機(jī)的內(nèi)存)。
需要說明的是,代理對(duì)象為預(yù)先設(shè)置的,用于控制目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果進(jìn)行緩存的對(duì)象。該代理對(duì)象的設(shè)置方法可以有很多種,在本申請(qǐng)實(shí)施例中,可以編寫一個(gè)工廠類cachefactory,該工廠類的功能是根據(jù)已標(biāo)記預(yù)設(shè)注解@playcacheable的程序代碼的相關(guān)信息來創(chuàng)建代理對(duì)象,其中,可以通過javassit中的代理工廠(proxyfactory)以動(dòng)態(tài)字節(jié)碼的方式生成。該代理對(duì)象除繼承了目標(biāo)業(yè)務(wù)邏輯的全部功能之外,還具有將該目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果進(jìn)行緩存的功能。
可選地,緩存模塊包括:獲取子模塊,用于獲取程序代碼中所標(biāo)記的預(yù)設(shè)注解的索引鍵值;查找子模塊,用于通過索引鍵值在預(yù)設(shè)處理結(jié)果中查找目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果,其中,預(yù)設(shè)處理結(jié)果為已緩存在目標(biāo)存儲(chǔ)器中的目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果;緩存子模塊,用于在索引鍵值未查找到目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果的情況下,緩存目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果至目標(biāo)存儲(chǔ)器中。
需要說明的是,在本申請(qǐng)實(shí)施例中,預(yù)設(shè)注解@playcacheable中包括索引鍵值key,該索引鍵值key的功能是在目標(biāo)存儲(chǔ)器中已緩存的預(yù)設(shè)處理結(jié)果中查找該目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果。其中,由于目標(biāo)業(yè)務(wù)鍵值的處理結(jié)果可能預(yù)先已存儲(chǔ)于目標(biāo)存儲(chǔ)器中,因此,通過調(diào)用獲取子模塊獲取該索引鍵值,并調(diào)用查找子模塊通過該索引鍵值在目標(biāo)存儲(chǔ)器中查找目標(biāo)業(yè)務(wù)鍵值的處理結(jié)果是否已緩存。
如果索引鍵值的返回值為空,則說明在目標(biāo)存儲(chǔ)器中未查找到該處理結(jié)果,則此時(shí)調(diào)用緩存子模塊將目標(biāo)業(yè)務(wù)鍵值的處理結(jié)果以字符串的形式或者以二進(jìn)制的形式存儲(chǔ)于目標(biāo)存儲(chǔ)器中。
可選地,裝置還包括:第二獲取單元,用于在索引鍵值查找到處理結(jié)果的情況下,獲取目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果的數(shù)據(jù)類型;第二調(diào)用單元,用于從目標(biāo)存儲(chǔ)器中調(diào)用目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果,其中,目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果以字符串形式存儲(chǔ)于目標(biāo)存儲(chǔ)器中;轉(zhuǎn)化單元,用于將調(diào)用到的字符串形式的目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果轉(zhuǎn)化為數(shù)據(jù)類型的目標(biāo)結(jié)果,并返回目標(biāo)結(jié)果。
具體地,如果通過索引鍵值(key值)在目標(biāo)存儲(chǔ)器中已存儲(chǔ)的預(yù)設(shè)處理結(jié)果中查找到該目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果,則通過第二調(diào)用單元在從目標(biāo)存儲(chǔ)器中將該處理結(jié)果調(diào)用該處理結(jié)果,并通過轉(zhuǎn)化單元將該處理結(jié)果的類型轉(zhuǎn)化為第二獲取單元獲取到的數(shù)據(jù)類型(returntype類型),得到目標(biāo)結(jié)果,并將該目標(biāo)結(jié)果返回給編程人員。
需要說明的是,在目標(biāo)存儲(chǔ)器中預(yù)先緩存的預(yù)設(shè)處理結(jié)果是以字符串的形式(或者二進(jìn)制)的形式存儲(chǔ)的,而返回給編程人員結(jié)果需為對(duì)象(objection)形式的結(jié)果,因此,需要將在目標(biāo)存儲(chǔ)器中調(diào)用的處理結(jié)果的類型轉(zhuǎn)化為數(shù)據(jù)類型。例如,任意處理結(jié)果:“張三”和“李四”是以字符串或者二進(jìn)制的形式存儲(chǔ)于目標(biāo)存儲(chǔ)器中,則需將該字符串或者二進(jìn)制形式的處理結(jié)果轉(zhuǎn)化為對(duì)象形式的目標(biāo)結(jié)果,例如:張三、李四。
可選地,數(shù)據(jù)處理裝置還包括:清除單元,用于在存儲(chǔ)目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果至目標(biāo)存儲(chǔ)器之后經(jīng)過預(yù)設(shè)時(shí)間,清除目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果,其中,預(yù)設(shè)時(shí)間為預(yù)先設(shè)置于預(yù)設(shè)注解中用于控制目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果在目標(biāo)存儲(chǔ)器中存儲(chǔ)的時(shí)間。
具體地,在預(yù)設(shè)注解@playcacheable中還包括預(yù)設(shè)時(shí)間(duration),該預(yù)設(shè)時(shí)間又可以稱為失效時(shí)間,即目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果在目標(biāo)存儲(chǔ)器中存儲(chǔ)的時(shí)間。
在存儲(chǔ)目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果至目標(biāo)存儲(chǔ)器的時(shí)刻,讀取該預(yù)設(shè)注解@playcacheable中的預(yù)設(shè)時(shí)間(duration),并開始計(jì)時(shí),經(jīng)過預(yù)設(shè)時(shí)間之后,通過調(diào)用清除模塊將該處理結(jié)果清除,釋放內(nèi)存空間,防止出現(xiàn)數(shù)據(jù)過大而導(dǎo)致的計(jì)算機(jī)運(yùn)行緩慢等問題。
所述數(shù)據(jù)處理裝置包括處理器和存儲(chǔ)器,上述第一獲取單元、第一調(diào)用單元、執(zhí)行單元、檢測(cè)單元和緩存單元等均作為程序單元存儲(chǔ)在存儲(chǔ)器中,由處理器執(zhí)行存儲(chǔ)在存儲(chǔ)器中的上述程序單元。
處理器中包含內(nèi)核,由內(nèi)核去存儲(chǔ)器中調(diào)取相應(yīng)的程序單元。內(nèi)核可以設(shè)置一個(gè)或以上,通過調(diào)整內(nèi)核參數(shù)通過標(biāo)記預(yù)設(shè)注解實(shí)現(xiàn)自動(dòng)對(duì)目標(biāo)業(yè)務(wù)邏輯的處理結(jié)果自動(dòng)實(shí)現(xiàn)緩存,解決了由于現(xiàn)有技術(shù)中無法緩存業(yè)務(wù)邏輯的處理結(jié)果的技術(shù)問題。
存儲(chǔ)器可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(rom)或閃存(flashram),存儲(chǔ)器包括至少一個(gè)存儲(chǔ)芯片。
本申請(qǐng)還提供了一種計(jì)算機(jī)程序產(chǎn)品的實(shí)施例,當(dāng)在數(shù)據(jù)處理設(shè)備上執(zhí)行時(shí),適于執(zhí)行初始化有如下方法步驟的程序代碼:獲取目標(biāo)業(yè)務(wù)數(shù)據(jù);調(diào)用目標(biāo)業(yè)務(wù)邏輯對(duì)應(yīng)的程序代碼,其中,所述目標(biāo)業(yè)務(wù)邏輯用于處理所述目標(biāo)業(yè)務(wù)數(shù)據(jù);執(zhí)行所述目標(biāo)業(yè)務(wù)邏輯對(duì)應(yīng)的程序代碼對(duì)所述目標(biāo)業(yè)務(wù)數(shù)據(jù)進(jìn)行處理,得到處理結(jié)果;檢測(cè)所述程序代碼中是否標(biāo)記有預(yù)設(shè)注解,其中,所述預(yù)設(shè)注解用于表示所述目標(biāo)業(yè)務(wù)邏輯為待緩存的業(yè)務(wù)邏輯;在檢測(cè)到所述程序代碼中標(biāo)記有所述預(yù)設(shè)注解的情況下,緩存所述 處理結(jié)果至目標(biāo)存儲(chǔ)器中。
上述本申請(qǐng)實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
在本申請(qǐng)的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本申請(qǐng)各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述僅是本申請(qǐng)的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本申請(qǐng)?jiān)淼那疤嵯?,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本申請(qǐng)的保護(hù)范圍。