[发明专利]一种基于注解描述的Web缓存方法在审
申请号: | 201510611279.1 | 申请日: | 2015-09-24 |
公开(公告)号: | CN105100289A | 公开(公告)日: | 2015-11-25 |
发明(设计)人: | 蔡晓东 | 申请(专利权)人: | 中邮科通信技术股份有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 福州元创专利商标代理有限公司 35100 | 代理人: | 蔡学俊 |
地址: | 350026 福建*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 注解 描述 web 缓存 方法 | ||
技术领域
本发明属于互联网应用领域,具体涉及一种基于注解描述的Web缓存方法。
背景技术
缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。
API为操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的API而使操作系统去执行应用程序的命令(动作)。现有方案采用一般API方式实现缓存,即由开发者显式调用缓存API,通常包括以下两类API:
1、set/get方法直接操作缓存。即通过getCache(StringcacheName)获取缓存对象。setCache(StringcacheName,StringcacheValue)设置缓存对象。
2、从数据库中获取数据时,首先从缓存获取。如queryByCache(StringcacheName,Stringsql),该方法首先获取cacheName对应的缓存对象,当缓存对象为null时,再执行sql语句并把查询结果缓存在cacheName对应的缓存对象中。
方案1采用的是set/get方法,需要程序员主动管理cache,并在任何需要获取cache的代码中,硬编码get方法获取cache的值,而当cache为null时,程序员则必须setCache。这些操作还涉及到多线程同步,编码易出错导致脏数据。
方案2较方案1使用更为便利,但该方案的缓存数据无法更新,一旦用户通过管理界面修改了sql查询对应的数据库表后,获取的数据仍为最初查询的缓存数据结果,而不会重新发起sql查询。
发明内容
本发明的目的是提供一个简单的基于“注解(Annotation)”式描述的缓存方法,简化程序员编码及缓存管理难度,并确保自动刷新缓存。
本发明采用以下技术方案实现:一种基于注解描述的Web缓存方法,其特征在于:包括以下步骤:步骤S1:用户浏览器发起HTTP请求,对应于查询方法上的缓存操作注解,该请求首先被缓存拦截器拦截;步骤S2:缓存拦截器发现从未缓存过该Controller方法及相关参数上的数据,则将该Controller方法及相关参数发往控制器对象处理;步骤S3:控制器对象执行各种数据库查询操作,获取生成视图所需要的所有数据,数据库将该数据返回给控制器;步骤S4:控制器调用缓存方法,保存生成视图所需要的所有数据;控制器将数据发送给视图;步骤S5:视图将获得数据渲染成为最终的HTML页面,并发送至用户浏览器进行显示;步骤S6:当其他用户浏览器发来同样的HTTP请求,访问已写入过缓存的Controller方法时,该请求首先被缓存拦截器;步骤S7:缓存拦截器向缓存服务器Memcached中的请求缓存数据;步骤S8:Memcached将缓存数据发送回缓存拦截器拦截;缓存拦截器将查询结果返回给用户浏览器;步骤S9:用户浏览器发起HTTP请求,对应于增删改方法上的清除缓存操作注解,该请求首先被清除缓存拦截器拦截;步骤S10:清除缓存拦截器将该Controller方法及相关参数发往控制器对象处理;步骤S11:控制器对象执行各种数据库增删改操作,并获取生成视图所需要的所有数据;数据库将增删改数据的结果返回给控制器;步骤S12:控制器调用缓存方法,清除视图需要的所有相关数据;控制器将数据发送给视图;步骤S13:视图将获得数据渲染成为最终的HTML页面,并发送至用户浏览器进行显示。
在本发明一实施例中,当包含INSERT、UPDATE或DELETE操作的方法,设置为清除缓存操作清除该控制器的所有缓存数据;若只包含SELECT数据库表操作的方法,则设置为缓存操作生成缓存数据。
与现有技术相比本发明具有以下优点:
1、不使用JavaAPI编程操作,避免程序员操作错误。用户无需考虑把什么对象缓存在哪个cacheName中,读取缓存和清除缓存操作分别使用不同的拦截器配置,不带有任何参数,大大简化了程序员的工作量;
2、该方法支持多缓存服务器的群集配置,且当缓存服务器宕机下线时,或者缓存服务器重新上线时,缓存插件将自动适配,自动调整缓存分配,确保缓存的命中率达到预期。
附图说明
图1为HTTP请求Controller的查询方法时的流程示意图。
图2为HTTP请求Controller的增、删、改方法时的流程示意图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中邮科通信技术股份有限公司,未经中邮科通信技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510611279.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种资源地址的生成方法、装置及系统
- 下一篇:一种数据下载方法和装置