`
HenryYu
  • 浏览: 29335 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Beetle Web框架使用指南之--请求动态缓存功能

阅读更多

    BJAF Web框架利用Servlet的Filter技术在请求和具体执行业务控制器之间加多一层,这是一个缓存策略管理层。它可以根据请求的特点来动态决定是否缓存,以及缓存内容及时返归回用户。其结构示意图如下:

请求动态缓存原理示意图

      可见,我们在WebBrowser请求到达Request MainControllerServlet(请求主控制器的Servlet)之间,我们增加多一层:Web Request Cache,此缓存组件模块负责的具体工作如下:
ø缓存策略的定义。即:缓存的作用领域是多宽。是针对整个Web应用(Application级)的缓存还是只针对某个用户的会话(Session级)的缓存。它们的缓存时间又是多少?
ø缓存控制器的配置及读取。在软件的开发过程中,我们有时很难界定哪些控制输出需要作缓存处理,即使知道,我们编写的代码也只能是硬代码,很难根据以后具体的运行情况而变动。所以,所有的缓存处理必须是透明的、可以根据具体的需求而灵活配置的。哪些请求结果需要作缓存,其缓存策略如何,完全由配置文件来描述。
     BJAF Web框架的请求缓存描述都在WebController.xml的<caches>标签内装配,例如:

<?xml version="1.0" encoding="gb2312"?>
<mappings>
  <caches>
    <cItem name="shop-viewCategory.ctrl" scope="application" time="30"/>
	<cItem name="shop-viewProduct.ctrl" scope="application" time="30"/>
	<cItem name="shop-listOrders.ctrl" scope="session" time="30"/>
	<cItem name="shop-viewOrder.ctrl" scope="session" time="30"/>
  </caches>
</mappings>

 上面每一项为一条缓存策略的定义,例如第一项(条)表示为:
名称为:“shop-viewCategory.ctrl”的控制器输出的结果视图内容需要作缓存处理;其缓存的作用域是整个应用(Application),缓存时间的周期是30秒。

  • 大小: 15.3 KB
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics