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

一種緩存操作實(shí)現(xiàn)方法、業(yè)務(wù)層方法的調(diào)用方法及裝置的制造方法

文檔序號:10534503閱讀:241來源:國知局
一種緩存操作實(shí)現(xiàn)方法、業(yè)務(wù)層方法的調(diào)用方法及裝置的制造方法
【專利摘要】本發(fā)明實(shí)施例公開了一種緩存操作實(shí)現(xiàn)方法,包括:設(shè)定至少一條語義規(guī)則,每條語義規(guī)則對應(yīng)一類緩存操作;生成與所述語義規(guī)則相對應(yīng)的針對參數(shù)進(jìn)行緩存操作的實(shí)現(xiàn)代碼;將業(yè)務(wù)層方法調(diào)用所需的緩存操作對應(yīng)的語義規(guī)則與所述業(yè)務(wù)層方法進(jìn)行綁定,以使所述業(yè)務(wù)層方法被調(diào)用時(shí),執(zhí)行與所述業(yè)務(wù)層方法綁定的語義規(guī)則所對應(yīng)的緩存操作的實(shí)現(xiàn)代碼。本發(fā)明還公開了業(yè)務(wù)層方法的調(diào)用方法及相關(guān)裝置,采用本發(fā)明,實(shí)現(xiàn)基于redis緩存操作可配置化管理,利用緩存操作的可配置化,相關(guān)代碼實(shí)現(xiàn)自動化,提高了代碼功能內(nèi)聚性,進(jìn)一步提高了代碼可讀性和可重用性,可以大幅度減少開發(fā)人員編碼量,提升項(xiàng)目開發(fā)效率,降低項(xiàng)目維護(hù)成本。
【專利說明】
一種緩存操作實(shí)現(xiàn)方法、業(yè)務(wù)層方法的調(diào)用方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種緩存操作實(shí)現(xiàn)方法、業(yè)務(wù)層方法的調(diào)用方法、及一種緩存操作實(shí)現(xiàn)裝置、業(yè)務(wù)層方法的調(diào)用裝置。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)技術(shù)快速發(fā)展,網(wǎng)站類用戶成幾何數(shù)級增長,系統(tǒng)負(fù)載壓力暴增。緩存作為一種大幅度提高系統(tǒng)處理能力的手段被人們廣泛使用,緩存應(yīng)用在高并發(fā)系統(tǒng)運(yùn)行中扮演著重要角色。
[0003]近來,考慮到Redis緩存優(yōu)異性能和多種靈活的元數(shù)據(jù)存儲方式等特點(diǎn),其受到互聯(lián)網(wǎng)公司大力推崇。然而,Redis緩存在提供豐富靈活的命令接口同時(shí),也帶來了 JAVASERVICE層緩存操作代碼的散亂,重復(fù)冗余等問題,尤其在一些操作如基于緩存的分頁查詢,增,刪,改等操作上。Redis繁多的命令操作接口加大了開發(fā)人員項(xiàng)目開發(fā)復(fù)雜度和維護(hù)成本。

【發(fā)明內(nèi)容】

[0004]本發(fā)明實(shí)施例所要解決的技術(shù)問題在于,提供一種緩存操作實(shí)現(xiàn)方法、業(yè)務(wù)層方法的調(diào)用方法、及一種緩存操作實(shí)現(xiàn)裝置、業(yè)務(wù)層方法的調(diào)用裝置,有效提高開發(fā)人員項(xiàng)目開發(fā)效率,降低維護(hù)成本。
[0005]第一方面,本發(fā)明實(shí)施例提供了一種緩存操作實(shí)現(xiàn)方法,包括:
[0006]設(shè)定至少一條語義規(guī)則,每條語義規(guī)則對應(yīng)一類緩存操作;
[0007]生成與所述語義規(guī)則相對應(yīng)的針對參數(shù)進(jìn)行緩存操作的實(shí)現(xiàn)代碼;
[0008]將業(yè)務(wù)層方法調(diào)用所需的緩存操作對應(yīng)的語義規(guī)則與所述業(yè)務(wù)層方法進(jìn)行綁定,以使所述業(yè)務(wù)層方法被調(diào)用時(shí),執(zhí)行與所述業(yè)務(wù)層方法綁定的語義規(guī)則所對應(yīng)的緩存操作的實(shí)現(xiàn)代碼。
[0009]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述語義規(guī)則包括以下屬性:
[0010]指示被綁定的業(yè)務(wù)層類及其業(yè)務(wù)方法;
[0011 ]指示被緩存對象的數(shù)據(jù)類型;
[0012]指示緩存數(shù)據(jù)存取的key值。
[0013]結(jié)合第一方面,在第二種可能的實(shí)現(xiàn)方式中,所述將業(yè)務(wù)層方法調(diào)用所需的緩存操作對應(yīng)的語義規(guī)則與所述業(yè)務(wù)層方法進(jìn)行綁定包括:
[0014]通過所述配置文件將語義規(guī)則綁定到業(yè)務(wù)層類的目標(biāo)方法,所述語義規(guī)則為所述目標(biāo)方法被調(diào)用時(shí)所需的緩存操作對應(yīng)的語義規(guī)則。
[0015]結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述通過所述配置文件將語義規(guī)則綁定到業(yè)務(wù)層類的目標(biāo)方法,包括:
[0016]通過代碼生成包c(diǎn)glib將所述進(jìn)行緩存操作的實(shí)現(xiàn)代碼關(guān)聯(lián)到相關(guān)的業(yè)務(wù)層類的目標(biāo)方法。
[0017]第二方面,本發(fā)明實(shí)施例提供了一種業(yè)務(wù)層方法的調(diào)用方法,包括:
[0018]接收業(yè)務(wù)層方法的調(diào)用指令;所述調(diào)用指令指示進(jìn)行所述業(yè)務(wù)層方法調(diào)用的緩存操作;
[0019]判斷被調(diào)用的所述業(yè)務(wù)層方法是否進(jìn)行了語義規(guī)則綁定;所述語義規(guī)則對應(yīng)有針對參數(shù)進(jìn)行所述業(yè)務(wù)層方法調(diào)用的緩存操作的實(shí)現(xiàn)代碼;
[0020]當(dāng)判斷結(jié)果為是時(shí),執(zhí)行所述語義規(guī)則對應(yīng)的所述緩存操作的實(shí)現(xiàn)代碼,并返回所述緩存操作執(zhí)行后的數(shù)據(jù)。
[0021]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述判斷被調(diào)用的所述業(yè)務(wù)層方法是否進(jìn)行了語義規(guī)則綁定之后,還包括:
[0022]當(dāng)判斷結(jié)果為否時(shí),執(zhí)行所述業(yè)務(wù)層方法代碼,并返回所述業(yè)務(wù)層代碼執(zhí)行后的數(shù)據(jù)。
[0023 ]第三方面,本發(fā)明實(shí)施例提供了一種緩存操作實(shí)現(xiàn)裝置,包括:
[0024]規(guī)則設(shè)定模塊,用于設(shè)定至少一條語義規(guī)則,每條語義規(guī)則對應(yīng)一類緩存操作;
[0025]代碼生成模塊,用于生成與所述語義規(guī)則相對應(yīng)的針對參數(shù)進(jìn)行緩存操作的實(shí)現(xiàn)代碼;
[0026]綁定模塊,用于將業(yè)務(wù)層方法調(diào)用所需的緩存操作對應(yīng)的語義規(guī)則與所述業(yè)務(wù)層方法進(jìn)行綁定,以使所述業(yè)務(wù)層方法被調(diào)用時(shí),執(zhí)行與所述業(yè)務(wù)層方法綁定的語義規(guī)則所對應(yīng)的緩存操作的實(shí)現(xiàn)代碼。
[0027]結(jié)合第三方面,在第一種可能的實(shí)現(xiàn)方式中,所述語義規(guī)則包括以下屬性:
[0028]指示被綁定的業(yè)務(wù)層類及其業(yè)務(wù)方法;
[0029]指示被緩存對象的數(shù)據(jù)類型;
[0030]指示緩存數(shù)據(jù)存取的key值。
[0031]結(jié)合第三方面,在第二種可能的實(shí)現(xiàn)方式中,所述綁定模塊具體用于通過所述配置文件將語義規(guī)則綁定到業(yè)務(wù)層類的目標(biāo)方法,所述語義規(guī)則為所述目標(biāo)方法被調(diào)用時(shí)所需的緩存操作對應(yīng)的語義規(guī)則。
[0032]結(jié)合第三方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述綁定模塊具體用于,通過代碼生成包c(diǎn)glib將所述進(jìn)行緩存操作的實(shí)現(xiàn)代碼關(guān)聯(lián)到相關(guān)的業(yè)務(wù)層類的目標(biāo)方法。
[0033]第四方面,本發(fā)明實(shí)施例提供了一種業(yè)務(wù)層方法的調(diào)用裝置,包括:
[0034]調(diào)用指令接收模塊,用于接收業(yè)務(wù)層方法的調(diào)用指令;所述調(diào)用指令指示進(jìn)行所述業(yè)務(wù)層方法調(diào)用的緩存操作;
[0035]綁定判斷模塊,用于判斷被調(diào)用的所述業(yè)務(wù)層方法是否進(jìn)行了語義規(guī)則綁定;所述語義規(guī)則對應(yīng)有針對參數(shù)進(jìn)行所述業(yè)務(wù)層方法調(diào)用的緩存操作的實(shí)現(xiàn)代碼;
[0036]第一執(zhí)行模塊,用于當(dāng)判斷結(jié)果為是時(shí),執(zhí)行所述語義規(guī)則對應(yīng)的所述緩存操作的實(shí)現(xiàn)代碼,并返回所述緩存操作執(zhí)行后的數(shù)據(jù)。
[0037]結(jié)合第四方面,在第一種可能的實(shí)現(xiàn)方式中,還包括:
[0038]第二執(zhí)行模塊,用于當(dāng)判斷結(jié)果為否時(shí),執(zhí)行所述業(yè)務(wù)層方法代碼,并返回所述業(yè)務(wù)層代碼執(zhí)行后的數(shù)據(jù)。
[0039]第五方面,本發(fā)明實(shí)施例提供了一種計(jì)算機(jī)存儲介質(zhì),所述計(jì)算機(jī)存儲介質(zhì)存儲有程序,所述程序執(zhí)行時(shí)包括本發(fā)明實(shí)施例第一方面,或者第一方面的第一種可能的實(shí)現(xiàn)方式,或者第一方面的第二種可能的實(shí)現(xiàn)方式,或者第一方面的第三種可能的實(shí)現(xiàn)方式中公開的緩存操作實(shí)現(xiàn)方法,或者第二方面,或者第二方面的第一種可能的實(shí)現(xiàn)方式中公開的業(yè)務(wù)層方法的調(diào)用方法。
[0040]通過實(shí)施本發(fā)明實(shí)施例,設(shè)定至少一條語義規(guī)則,每條語義規(guī)則對應(yīng)一類緩存操作;生成與該語義規(guī)則相對應(yīng)的針對參數(shù)進(jìn)行緩存操作的實(shí)現(xiàn)代碼;將業(yè)務(wù)層方法調(diào)用所需的緩存操作對應(yīng)的語義規(guī)則與所述業(yè)務(wù)層方法進(jìn)行綁定,以使該業(yè)務(wù)層方法被調(diào)用時(shí),自動執(zhí)行與該業(yè)務(wù)層方法綁定的語義規(guī)則所對應(yīng)的緩存操作的實(shí)現(xiàn)代碼,可以實(shí)現(xiàn)基于redi s緩存操作可配置化管理,利用緩存操作的可配置化,相關(guān)代碼實(shí)現(xiàn)自動化,通過將緩存操作代碼與系統(tǒng)的業(yè)務(wù)層代碼相分離,緩存代碼與業(yè)務(wù)層代碼進(jìn)行了解耦,提高了代碼功能內(nèi)聚性,進(jìn)一步提高了代碼可讀性和可重用性,可以大幅度減少開發(fā)人員編碼量,提升項(xiàng)目開發(fā)效率,降低項(xiàng)目維護(hù)成本,降低開發(fā)過程錯誤出現(xiàn)率,提高系統(tǒng)穩(wěn)健性,而且符合軟件工程開發(fā)設(shè)計(jì)思想,有助于推動軟件技術(shù)發(fā)展。
【附圖說明】
[0041]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0042]圖1是本發(fā)明實(shí)施例提供的緩存操作實(shí)現(xiàn)方法的流程示意圖;
[0043]圖2是本發(fā)明實(shí)施例提供的針對參數(shù)進(jìn)行緩存操作的實(shí)現(xiàn)代碼的示意圖;
[0044]圖3是本發(fā)明實(shí)施例提供的數(shù)據(jù)列表查詢緩存代碼的實(shí)現(xiàn)原理示意圖;
[0045]圖4是本發(fā)明提供的項(xiàng)目開發(fā)過程的比較示意圖;
[0046]圖5是本發(fā)明實(shí)施例提供的業(yè)務(wù)層方法的調(diào)用方法例的流程示意圖;
[0047]圖6是本發(fā)明實(shí)施例提供的緩存操作實(shí)現(xiàn)裝置的結(jié)構(gòu)示意圖;
[0048]圖7是本發(fā)明提供的緩存操作實(shí)現(xiàn)裝置的另一實(shí)施例的結(jié)構(gòu)示意圖;
[0049]圖8是本發(fā)明實(shí)施例提供的業(yè)務(wù)層方法的調(diào)用裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0050]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0051]需要說明的是,在本發(fā)明實(shí)施例中使用的術(shù)語是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本發(fā)明。在本發(fā)明實(shí)施例和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語“和/或”是指并包含一個或多個相關(guān)聯(lián)的列出項(xiàng)目的任何或所有可能組入口 ο
[0052]下面結(jié)合圖1示出的本發(fā)明實(shí)施例提供的緩存操作實(shí)現(xiàn)方法的流程示意圖,包括:
[0053]步驟S100:設(shè)定至少一條語義規(guī)則,每條語義規(guī)則對應(yīng)一類緩存操作;
[0054]具體地,開發(fā)人員可以設(shè)定或定義一套語義規(guī)則來描述緩存操作,該一套語義規(guī)則包含至少一條語義規(guī)則,其中每條語義規(guī)則對應(yīng)某一類緩存操作。本發(fā)明實(shí)施例中的語義規(guī)則可以包括以下屬性:指示被綁定的業(yè)務(wù)層類及其業(yè)務(wù)方法、指示被緩存對象的數(shù)據(jù)類型、和指示緩存數(shù)據(jù)存取的key值。
[0055]具體地,可以通過可擴(kuò)展標(biāo)記語言XML來定義相關(guān)緩存操作的語義規(guī)則,如下:
[0056]〈rules〉
[0057]〈rule id= "queryFreshMemberlist" class ="com.xx.ent.dream.service.freshme mber.FreshMemberService"method = MqueryFreshMemberlist"cachekey="dream|freshmember|info|hash|key"/>
[0058]〈rule id = "oddFreshMember" class ="com.xx.ent.dream.service.freshmember.FreshMemberService"method="oddFreshMember"field="id"cachekey="dre am|freshmember|info|hash|key"/>
[0059]〈rule id = "updateFreshMember" class ="com.xx.ent.dream.service.freshmem ber.FreshMemberService"method = MupdateFreshMemberMcachekey ="dream|fr eshmember|info|hash|key"/>
[0060]〈rule id = "deleteFreshMember" class ="com.xx.ent.dream.service.freshmem ber.FreshMemberService"method = MdeleteFreshMember"cachekey="dream|fre shmember|info|hash|key"/>
[0061 ] 〈rule id = "queryCommentlist" class = Mcom.xx.ent.dream.service.Comment.C ommentService"method="queryCommentlist"entity = Mcom.xx.ent.service.comm ent.ap1.model.Comment"cachekey="dream|freshmember|info|hash|key"/>
[0062]需要說明的是,rule表示一種語義規(guī)則(即緩存規(guī)則)綁定方式。屬性id表示業(yè)務(wù)緩存規(guī)則的唯一標(biāo)識,這里需要對緩存規(guī)則和業(yè)務(wù)緩存規(guī)則進(jìn)行區(qū)別,緩存規(guī)則即本發(fā)明實(shí)施例中的語義規(guī)則,它抽取可重用的緩存代碼(即下面步驟S102中對應(yīng)的針對參數(shù)進(jìn)行緩存操作的實(shí)現(xiàn)代碼)作為一項(xiàng)緩存規(guī)則被不同業(yè)務(wù)緩存規(guī)則重用。
[0063]例如,第一條語義規(guī)則為列表數(shù)據(jù)查詢緩存規(guī)則,被綁定的方法名以query開頭及l(fā)ist結(jié)尾,這樣的方法返回的數(shù)據(jù)類型一般為列表list;第二條語義規(guī)則為數(shù)據(jù)更新緩存規(guī)則,被綁定的方法名以update開頭,數(shù)據(jù)為單條;第三條語義規(guī)則為數(shù)據(jù)刪除緩存規(guī)則:被綁定的方法名以delete開頭,數(shù)據(jù)為單條。等等
[0064]每條語義規(guī)則中屬性class和method分別表示被綁定的業(yè)務(wù)層類及其的業(yè)務(wù)方法,屬性e n t i t y表示被緩存對象的基本類型(即數(shù)據(jù)類型),默認(rèn)為com.yy.ent.commons.base.dt0.Property 類型。屬性 cachekey 表不緩存數(shù)據(jù)存取的key 值。屬性fieId表示hash緩存方式的field,它與cachekey區(qū)別在于,存取緩存需先定位到cachekey,再定位到field,最后才存取某一條數(shù)據(jù)內(nèi)容。例如,第一條語義規(guī)則id為queryFreshMemberLi st 表不,業(yè)務(wù)層類 FreshMemberServi ce 的方法 queryFreshMemberLi st綁定到第一條規(guī)則,緩存的數(shù)據(jù)類型為com.yy.ent.commons.base.dt0.Propert (默認(rèn)類型)。
[0065]步驟S102:生成與所述語義規(guī)則相對應(yīng)的針對參數(shù)進(jìn)行緩存操作的實(shí)現(xiàn)代碼;
[0066]具體地,開發(fā)人員還需要定義一套與語義規(guī)則相對應(yīng)的針對參數(shù)進(jìn)行緩存操作的實(shí)現(xiàn)代碼,例如開發(fā)人員可以定義一套與語義規(guī)則相對應(yīng)的JAVA方法,方法體中含有針對參數(shù)進(jìn)行緩存操作的實(shí)現(xiàn)代碼。該實(shí)現(xiàn)代碼為具有通用性的緩存操作代碼,即為可重用的緩存代碼。
[0067]以上面步驟SlOO中舉例的第一條語義規(guī)則為例,如圖2示出的本發(fā)明實(shí)施例提供的針對參數(shù)進(jìn)行緩存操作的實(shí)現(xiàn)代碼的示意圖,展示的是數(shù)據(jù)列表查詢緩存代碼,包括從緩存中讀取數(shù)據(jù)以及將數(shù)據(jù)放入緩存的緩存操作。
[0068]步驟S104:將業(yè)務(wù)層方法調(diào)用所需的緩存操作對應(yīng)的語義規(guī)則與所述業(yè)務(wù)層方法進(jìn)行綁定,以使所述業(yè)務(wù)層方法被調(diào)用時(shí),執(zhí)行與所述業(yè)務(wù)層方法綁定的語義規(guī)則所對應(yīng)的緩存操作的實(shí)現(xiàn)代碼。
[0069]具體地,可以通過所述配置文件將語義規(guī)則綁定到業(yè)務(wù)層類的目標(biāo)方法,如圖2所示,生成的即為配置文件;也就是說,本發(fā)明實(shí)施例通過抽取具有通用性的緩存操作代碼單獨(dú)放到可配置化系統(tǒng)中,并與語義規(guī)則(即緩存規(guī)則)對應(yīng),當(dāng)開發(fā)人員通過規(guī)則文件綁定業(yè)務(wù)層方法到具體規(guī)則時(shí),規(guī)則對應(yīng)可重用的緩存操作的實(shí)現(xiàn)代碼被自動添加到業(yè)務(wù)層方法中。可以說,緩存代碼自動生成過程對用戶是完全透明的。
[0070]進(jìn)一步地,如圖2所示,可以通過代碼生成包c(diǎn)glib將該進(jìn)行緩存操作的實(shí)現(xiàn)代碼關(guān)聯(lián)到相關(guān)的業(yè)務(wù)層類的目標(biāo)方法,以使所述業(yè)務(wù)層方法被調(diào)用時(shí),執(zhí)行與所述業(yè)務(wù)層方法綁定的語義規(guī)則所對應(yīng)的緩存操作的實(shí)現(xiàn)代碼。具體執(zhí)行過程可以參考圖3示出的本發(fā)明實(shí)施例提供的數(shù)據(jù)列表查詢緩存代碼的實(shí)現(xiàn)原理示意圖:
[0071 ]步驟S300:綁定了語義規(guī)則的業(yè)務(wù)層方法被調(diào)用;
[0072 ] 步驟S302:調(diào)用beforeQueryCacheMe thod后返回緩存中的數(shù)據(jù);
[0073]步驟S304:判斷返回的數(shù)據(jù)是否為空;
[0074]當(dāng)判斷為空時(shí),執(zhí)行步驟S306,否則,執(zhí)行步驟S312;
[0075]步驟S306:正式調(diào)用業(yè)務(wù)層方法,并返回?cái)?shù)據(jù);
[0076]步驟S308:判斷返回的數(shù)據(jù)是否為空;
[0077]當(dāng)判斷不為空時(shí),執(zhí)行步驟S310,否則,執(zhí)行步驟S312;
[0078]步驟S310:調(diào)用afterQueryCacheMethod,將數(shù)據(jù)放入緩存中,并返回?cái)?shù)據(jù);
[0079]步驟S312:返回到應(yīng)用層。
[0080]圖3展示了抽取的可重用的緩存操作的實(shí)現(xiàn)代碼與業(yè)務(wù)層方法協(xié)同執(zhí)行的過程。其他語義規(guī)則如第二條、第三條等等對應(yīng)的緩存代碼的實(shí)現(xiàn)執(zhí)行過程與圖3展示流程基本一致,這里不再贅述。
[0081]再進(jìn)一步地,如圖4示出的本發(fā)明提供的項(xiàng)目開發(fā)過程的比較示意圖,比較Redis緩存可配置前后的項(xiàng)目開發(fā)過程:
[0082]現(xiàn)有技術(shù)中,在查詢數(shù)據(jù)列表方法中引入緩存操作后,首先需從緩存讀取數(shù)據(jù),如果存在,則直接返回,否則從數(shù)據(jù)庫讀取后(第88行)再放入緩存(第90行),然后再返回。弓丨入Redis緩存可配置后,代碼編寫方式大大簡便了,其將有關(guān)緩存操作的代碼完全擯棄掉了,代碼量的減少是顯著的。
[0083]上述詳細(xì)闡述了本發(fā)明實(shí)施例的緩存操作實(shí)現(xiàn)方法,相應(yīng)地,本發(fā)明還提供了一種業(yè)務(wù)層方法的調(diào)用方法,如圖5所示,包括:
[0084]步驟S500:接收業(yè)務(wù)層方法的調(diào)用指令;所述調(diào)用指令指示進(jìn)行所述業(yè)務(wù)層方法調(diào)用的緩存操作;
[0085]步驟S502:判斷被調(diào)用的所述業(yè)務(wù)層方法是否進(jìn)行了語義規(guī)則綁定;所述語義規(guī)則對應(yīng)有針對參數(shù)進(jìn)行所述業(yè)務(wù)層方法調(diào)用的緩存操作的實(shí)現(xiàn)代碼;
[0086]當(dāng)判斷結(jié)果為是時(shí),執(zhí)行步驟S504,否則,執(zhí)行步驟S506。
[0087]步驟S504:執(zhí)行所述語義規(guī)則對應(yīng)的所述緩存操作的實(shí)現(xiàn)代碼,并返回所述緩存操作執(zhí)行后的數(shù)據(jù)。
[0088]具體地,可以參考上述圖3舉例的緩存操作的實(shí)現(xiàn)代碼的執(zhí)行流程。
[0089]步驟S506:執(zhí)行所述業(yè)務(wù)層方法代碼,并返回所述業(yè)務(wù)層代碼執(zhí)行后的數(shù)據(jù)。
[0090]通過實(shí)施本發(fā)明實(shí)施例,設(shè)定至少一條語義規(guī)則,每條語義規(guī)則對應(yīng)一類緩存操作;生成與該語義規(guī)則相對應(yīng)的針對參數(shù)進(jìn)行緩存操作的實(shí)現(xiàn)代碼;將業(yè)務(wù)層方法調(diào)用所需的緩存操作對應(yīng)的語義規(guī)則與所述業(yè)務(wù)層方法進(jìn)行綁定,以使該業(yè)務(wù)層方法被調(diào)用時(shí),自動執(zhí)行與該業(yè)務(wù)層方法綁定的語義規(guī)則所對應(yīng)的緩存操作的實(shí)現(xiàn)代碼,可以實(shí)現(xiàn)基于redi s緩存操作可配置化管理,利用緩存操作的可配置化,相關(guān)代碼實(shí)現(xiàn)自動化,通過將緩存操作代碼與系統(tǒng)的業(yè)務(wù)層代碼相分離,緩存代碼與業(yè)務(wù)層代碼進(jìn)行了解耦,提高了代碼功能內(nèi)聚性,進(jìn)一步提高了代碼可讀性和可重用性,可以大幅度減少開發(fā)人員編碼量,提升項(xiàng)目開發(fā)效率,降低項(xiàng)目維護(hù)成本,降低開發(fā)過程錯誤出現(xiàn)率,提高系統(tǒng)穩(wěn)健性,而且符合軟件工程開發(fā)設(shè)計(jì)思想,有助于推動軟件技術(shù)發(fā)展。
[0091]上述詳細(xì)闡述了本發(fā)明實(shí)施例的方法,下面為了便于更好地實(shí)施本發(fā)明實(shí)施例的上述方案,相應(yīng)地,下面還提供用于配合實(shí)施上述方案的相關(guān)裝置。
[0092]如圖6示出的本發(fā)明實(shí)施例提供的緩存操作實(shí)現(xiàn)裝置的結(jié)構(gòu)示意圖,緩存操作實(shí)現(xiàn)裝置60可以包括規(guī)則設(shè)定模塊600、代碼生成模塊602和綁定模塊604,其中,
[0093]規(guī)則設(shè)定模塊600用于設(shè)定至少一條語義規(guī)則,每條語義規(guī)則對應(yīng)一類緩存操作;
[0094]代碼生成模塊602用于生成與所述語義規(guī)則相對應(yīng)的針對參數(shù)進(jìn)行緩存操作的實(shí)現(xiàn)代碼;
[0095]綁定模塊604用于將業(yè)務(wù)層方法調(diào)用所需的緩存操作對應(yīng)的語義規(guī)則與所述業(yè)務(wù)層方法進(jìn)行綁定,以使所述業(yè)務(wù)層方法被調(diào)用時(shí),執(zhí)行與所述業(yè)務(wù)層方法綁定的語義規(guī)則所對應(yīng)的緩存操作的實(shí)現(xiàn)代碼。
[0096]具體地,語義規(guī)則可以包括以下屬性:
[0097]指示被綁定的業(yè)務(wù)層類及其業(yè)務(wù)方法;
[0098]指示被緩存對象的數(shù)據(jù)類型;
[0099]指示緩存數(shù)據(jù)存取的key值。
[0100]進(jìn)一步地,綁定模塊604具體用于通過所述配置文件將語義規(guī)則綁定到業(yè)務(wù)層類的目標(biāo)方法,所述語義規(guī)則為所述目標(biāo)方法被調(diào)用時(shí)所需的緩存操作對應(yīng)的語義規(guī)則。其中,通過所述配置文件將語義規(guī)則綁定到業(yè)務(wù)層類的目標(biāo)方法具體可以為通過代碼生成包c(diǎn)glib將所述進(jìn)行緩存操作的實(shí)現(xiàn)代碼關(guān)聯(lián)到相關(guān)的業(yè)務(wù)層類的目標(biāo)方法。
[0101]可理解的是,本實(shí)施例的緩存操作實(shí)現(xiàn)裝置60的各功能模塊的功能可根據(jù)上述方法實(shí)施例中的方法具體實(shí)現(xiàn),此處不再贅述。
[0102]請參閱圖7,圖7是本發(fā)明提供的緩存操作實(shí)現(xiàn)裝置的另一實(shí)施例的結(jié)構(gòu)示意圖。其中,如圖7所示,緩存操作實(shí)現(xiàn)裝置70可以包括:至少一個處理器701,例如CPU,至少一個網(wǎng)絡(luò)接口 704,用戶接口 703,存儲器705,至少一個通信總線702,可選地,還可以包括顯示屏706。其中,通信總線702用于實(shí)現(xiàn)這些組件之間的連接通信。其中,用戶接口 703可以包括觸摸屏、鍵盤或鼠標(biāo)等等。網(wǎng)絡(luò)接口 704可選的可以包括標(biāo)準(zhǔn)的有線接口、無線接口(如W1-FI接口),通過網(wǎng)絡(luò)接口704可以與客戶端建立通信連接。存儲器705可以是高速RAM存儲器,也可以是非不穩(wěn)定的存儲器(non-volatile memory),例如至少一個磁盤存儲器,存儲器705包括本發(fā)明實(shí)施例中的flash。存儲器705可選的還可以是至少一個位于遠(yuǎn)離前述處理器701的存儲系統(tǒng)。如圖7所示,作為一種計(jì)算機(jī)存儲介質(zhì)的存儲器705中可以包括操作系統(tǒng)、網(wǎng)絡(luò)通信模塊、用戶接口模塊以及緩存操作實(shí)現(xiàn)程序。
[0103]處理器701可以用于調(diào)用存儲器705中存儲的緩存操作實(shí)現(xiàn)程序,并執(zhí)行以下操作:
[0104]設(shè)定至少一條語義規(guī)則,每條語義規(guī)則對應(yīng)一類緩存操作;
[0105]生成與所述語義規(guī)則相對應(yīng)的針對參數(shù)進(jìn)行緩存操作的實(shí)現(xiàn)代碼;
[0106]將業(yè)務(wù)層方法調(diào)用所需的緩存操作對應(yīng)的語義規(guī)則與所述業(yè)務(wù)層方法進(jìn)行綁定,以使所述業(yè)務(wù)層方法被調(diào)用時(shí),執(zhí)行與所述業(yè)務(wù)層方法綁定的語義規(guī)則所對應(yīng)的緩存操作的實(shí)現(xiàn)代碼。
[0107]具體地,處理器701將業(yè)務(wù)層方法調(diào)用所需的緩存操作對應(yīng)的語義規(guī)則與所述業(yè)務(wù)層方法進(jìn)行綁定,具體包括:
[0108]根據(jù)所述緩存操作的實(shí)現(xiàn)代碼生成配置文件;
[0109]通過所述配置文件將語義規(guī)則綁定到業(yè)務(wù)層類的目標(biāo)方法,所述語義規(guī)則為所述目標(biāo)方法被調(diào)用時(shí)所需的緩存操作對應(yīng)的語義規(guī)則。
[0110]具體地,處理器701通過所述配置文件將語義規(guī)則綁定到業(yè)務(wù)層類的目標(biāo)方法,包括:
[0111]通過代碼生成包c(diǎn)glib將所述進(jìn)行緩存操作的實(shí)現(xiàn)代碼關(guān)聯(lián)到相關(guān)的業(yè)務(wù)層類的目標(biāo)方法。
[0112]需要說明的是,本發(fā)明實(shí)施例中的緩存操作實(shí)現(xiàn)裝置60或緩存操作實(shí)現(xiàn)裝置70包括但不限于個人計(jì)算機(jī)、移動電腦、平板電腦、移動電話、個人數(shù)字助理(Personal DigitalAssistant ,PDA)、智能電視、智能手表、智能眼鏡、智能手環(huán)等用戶設(shè)備上。
[0113]相應(yīng)地,本發(fā)明還提供了一種業(yè)務(wù)層方法的調(diào)用裝置,如圖8示出的本發(fā)明實(shí)施例提供的業(yè)務(wù)層方法的調(diào)用裝置的結(jié)構(gòu)示意圖,業(yè)務(wù)層方法的調(diào)用裝置80可以包括:調(diào)用指令接收模塊800、綁定判斷模塊802和第一執(zhí)行模塊804,其中,
[0114]調(diào)用指令接收模塊800用于接收業(yè)務(wù)層方法的調(diào)用指令;所述調(diào)用指令指示進(jìn)行所述業(yè)務(wù)層方法調(diào)用的緩存操作;
[0115]綁定判斷模塊802用于判斷被調(diào)用的所述業(yè)務(wù)層方法是否進(jìn)行了語義規(guī)則綁定;所述語義規(guī)則對應(yīng)有針對參數(shù)進(jìn)行所述業(yè)務(wù)層方法調(diào)用的緩存操作的實(shí)現(xiàn)代碼;
[0116]第一執(zhí)行模塊804用于當(dāng)綁定判斷模塊802的判斷結(jié)果為是時(shí),執(zhí)行所述語義規(guī)則對應(yīng)的所述緩存操作的實(shí)現(xiàn)代碼,并返回所述緩存操作執(zhí)行后的數(shù)據(jù)。
[0117]具體地,業(yè)務(wù)層方法的調(diào)用裝置80還可以包括第二執(zhí)行模塊806,用于當(dāng)綁定判斷模塊802的判斷結(jié)果為否時(shí),執(zhí)行所述業(yè)務(wù)層方法代碼,并返回所述業(yè)務(wù)層代碼執(zhí)行后的數(shù)據(jù)。
[0118]可理解的是,本實(shí)施例的業(yè)務(wù)層方法的調(diào)用裝置80的各功能模塊的功能可根據(jù)上述方法實(shí)施例中的方法具體實(shí)現(xiàn),此處不再贅述。本發(fā)明實(shí)施例中的業(yè)務(wù)層方法的調(diào)用裝置包括但不限于個人計(jì)算機(jī)、移動電腦、平板電腦、移動電話、個人數(shù)字助理(PersonalDigital Assistant,PDA)、智能電視、智能手表、智能眼鏡、智能手環(huán)等用戶設(shè)備上。
[0119]綜上所述,通過實(shí)施本發(fā)明實(shí)施例,設(shè)定至少一條語義規(guī)則,每條語義規(guī)則對應(yīng)一類緩存操作;生成與該語義規(guī)則相對應(yīng)的針對參數(shù)進(jìn)行緩存操作的實(shí)現(xiàn)代碼;將業(yè)務(wù)層方法調(diào)用所需的緩存操作對應(yīng)的語義規(guī)則與所述業(yè)務(wù)層方法進(jìn)行綁定,以使該業(yè)務(wù)層方法被調(diào)用時(shí),自動執(zhí)行與該業(yè)務(wù)層方法綁定的語義規(guī)則所對應(yīng)的緩存操作的實(shí)現(xiàn)代碼,可以實(shí)現(xiàn)基于redis緩存操作可配置化管理,利用緩存操作的可配置化,相關(guān)代碼實(shí)現(xiàn)自動化,通過將緩存操作代碼與系統(tǒng)的業(yè)務(wù)層代碼相分離,緩存代碼與業(yè)務(wù)層代碼進(jìn)行了解耦,提高了代碼功能內(nèi)聚性,進(jìn)一步提高了代碼可讀性和可重用性,可以大幅度減少開發(fā)人員編碼量,提升項(xiàng)目開發(fā)效率,降低項(xiàng)目維護(hù)成本,降低開發(fā)過程錯誤出現(xiàn)率,提高系統(tǒng)穩(wěn)健性,而且符合軟件工程開發(fā)設(shè)計(jì)思想,有助于推動軟件技術(shù)發(fā)展。
[0120]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機(jī)存儲記憶體(Random AccessMemory,RAM)等。
[0121]以上所揭露的僅為本發(fā)明一種較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。
【主權(quán)項(xiàng)】
1.一種緩存操作實(shí)現(xiàn)方法,其特征在于,包括: 設(shè)定至少一條語義規(guī)則,每條語義規(guī)則對應(yīng)一類緩存操作; 生成與所述語義規(guī)則相對應(yīng)的針對參數(shù)進(jìn)行緩存操作的實(shí)現(xiàn)代碼; 將業(yè)務(wù)層方法調(diào)用所需的緩存操作對應(yīng)的語義規(guī)則與所述業(yè)務(wù)層方法進(jìn)行綁定,以使所述業(yè)務(wù)層方法被調(diào)用時(shí),執(zhí)行與所述業(yè)務(wù)層方法綁定的語義規(guī)則所對應(yīng)的緩存操作的實(shí)現(xiàn)代碼。2.如權(quán)利要求1所述的方法,其特征在于,所述語義規(guī)則包括以下屬性: 指示被綁定的業(yè)務(wù)層類及其業(yè)務(wù)方法; 指示被緩存對象的數(shù)據(jù)類型; 指示緩存數(shù)據(jù)存取的key值。3.如權(quán)利要求1所述的方法,其特征在于,所述將業(yè)務(wù)層方法調(diào)用所需的緩存操作對應(yīng)的語義規(guī)則與所述業(yè)務(wù)層方法進(jìn)行綁定包括: 通過所述配置文件將語義規(guī)則綁定到業(yè)務(wù)層類的目標(biāo)方法,所述語義規(guī)則為所述目標(biāo)方法被調(diào)用時(shí)所需的緩存操作對應(yīng)的語義規(guī)則。4.如權(quán)利要求3所述的方法,其特征在于,所述通過所述配置文件將語義規(guī)則綁定到業(yè)務(wù)層類的目標(biāo)方法,包括: 通過代碼生成包c(diǎn)glib將所述進(jìn)行緩存操作的實(shí)現(xiàn)代碼關(guān)聯(lián)到相關(guān)的業(yè)務(wù)層類的目標(biāo)方法。5.一種業(yè)務(wù)層方法的調(diào)用方法,其特征在于,包括: 接收業(yè)務(wù)層方法的調(diào)用指令;所述調(diào)用指令指示進(jìn)行所述業(yè)務(wù)層方法調(diào)用的緩存操作; 判斷被調(diào)用的所述業(yè)務(wù)層方法是否進(jìn)行了語義規(guī)則綁定;所述語義規(guī)則對應(yīng)有針對參數(shù)進(jìn)行所述業(yè)務(wù)層方法調(diào)用的緩存操作的實(shí)現(xiàn)代碼; 當(dāng)判斷結(jié)果為是時(shí),執(zhí)行所述語義規(guī)則對應(yīng)的所述緩存操作的實(shí)現(xiàn)代碼,并返回所述緩存操作執(zhí)行后的數(shù)據(jù)。6.如權(quán)利要求5所述的方法,其特征在于,所述判斷被調(diào)用的所述業(yè)務(wù)層方法是否進(jìn)行了語義規(guī)則綁定之后,還包括: 當(dāng)判斷結(jié)果為否時(shí),執(zhí)行所述業(yè)務(wù)層方法代碼,并返回所述業(yè)務(wù)層代碼執(zhí)行后的數(shù)據(jù)。7.一種緩存操作實(shí)現(xiàn)裝置,其特征在于,包括: 規(guī)則設(shè)定模塊,用于設(shè)定至少一條語義規(guī)則,每條語義規(guī)則對應(yīng)一類緩存操作; 代碼生成模塊,用于生成與所述語義規(guī)則相對應(yīng)的針對參數(shù)進(jìn)行緩存操作的實(shí)現(xiàn)代碼; 綁定模塊,用于將業(yè)務(wù)層方法調(diào)用所需的緩存操作對應(yīng)的語義規(guī)則與所述業(yè)務(wù)層方法進(jìn)行綁定,以使所述業(yè)務(wù)層方法被調(diào)用時(shí),執(zhí)行與所述業(yè)務(wù)層方法綁定的語義規(guī)則所對應(yīng)的緩存操作的實(shí)現(xiàn)代碼。8.如權(quán)利要求7所述的裝置,其特征在于,所述語義規(guī)則包括以下屬性: 指示被綁定的業(yè)務(wù)層類及其業(yè)務(wù)方法; 指示被緩存對象的數(shù)據(jù)類型; 指示緩存數(shù)據(jù)存取的key值。9.如權(quán)利要求7所述的裝置,其特征在于,所述綁定模塊具體用于,通過所述配置文件將語義規(guī)則綁定到業(yè)務(wù)層類的目標(biāo)方法,所述語義規(guī)則為所述目標(biāo)方法被調(diào)用時(shí)所需的緩存操作對應(yīng)的語義規(guī)則。10.如權(quán)利要求9所述的裝置,其特征在于,所述綁定模塊具體用于,通過代碼生成包c(diǎn)glib將所述進(jìn)行緩存操作的實(shí)現(xiàn)代碼關(guān)聯(lián)到相關(guān)的業(yè)務(wù)層類的目標(biāo)方法。11.一種業(yè)務(wù)層方法的調(diào)用裝置,其特征在于,包括: 調(diào)用指令接收模塊,用于接收業(yè)務(wù)層方法的調(diào)用指令;所述調(diào)用指令指示進(jìn)行所述業(yè)務(wù)層方法調(diào)用的緩存操作; 綁定判斷模塊,用于判斷被調(diào)用的所述業(yè)務(wù)層方法是否進(jìn)行了語義規(guī)則綁定;所述語義規(guī)則對應(yīng)有針對參數(shù)進(jìn)行所述業(yè)務(wù)層方法調(diào)用的緩存操作的實(shí)現(xiàn)代碼; 第一執(zhí)行模塊,用于當(dāng)判斷結(jié)果為是時(shí),執(zhí)行所述語義規(guī)則對應(yīng)的所述緩存操作的實(shí)現(xiàn)代碼,并返回所述緩存操作執(zhí)行后的數(shù)據(jù)。12.如權(quán)利要求11所述的裝置,其特征在于,還包括: 第二執(zhí)行模塊,用于當(dāng)判斷結(jié)果為否時(shí),執(zhí)行所述業(yè)務(wù)層方法代碼,并返回所述業(yè)務(wù)層代碼執(zhí)行后的數(shù)據(jù)。
【文檔編號】G06F9/44GK105893031SQ201610188548
【公開日】2016年8月24日
【申請日】2016年3月28日
【發(fā)明人】李可
【申請人】廣州華多網(wǎng)絡(luò)科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
启东市| 玛纳斯县| 沅陵县| 五大连池市| 临海市| 怀安县| 巧家县| 称多县| 常州市| 招远市| 江津市| 钦州市| 巴塘县| 碌曲县| 新化县| 嵊州市| 黎川县| 无棣县| 亚东县| 若尔盖县| 佳木斯市| 巴林左旗| 嘉善县| 新疆| 布尔津县| 靖州| 嘉禾县| 裕民县| 嘉祥县| 青阳县| 进贤县| 广东省| 临颍县| 六盘水市| 玉门市| 特克斯县| 天门市| 卓资县| 老河口市| 香格里拉县| 新昌县|