Web应用在业务层实现数据缓存

  最近做一个Web项目,用了许多自定义的数据,其中一部分是保存在XML文件中,一部分是保存在数据库,这些数据当系统正式使用后,其实都不会变化很频繁,却使用得很频繁,一个很自然的想法就是把这些数据放到Cache中,这样能很大提高效率.但是却很久没找到在业务层使用Cache的方法,忧郁.在业务层使用了单件模式,将要缓存的数据放到一个ArrayList中,使用时,如果ArrayList中数据为空它重新去取数据,并提供一个清除它的方法,在Web层中要使用这些数据的页面都创建基于依赖配置文件的Cache,并提供一个回调函数,当配置文件改变时,清除ArraryList的数据,再重新创建一次Cache(原来的Cache已经失效,如果想下次还有效,只有再创建一次).很明显,这样做很变态,不但破坏了原来简明的结构,还加多了工作量.不爽.幸好,不负有心人,让我终于找到了.对于在Asp.Net环境下使用的组件,可以用System.Web.HttpRuntime.Cache来访问Cache ,有了这个,一切都好办了,把Cache创建直接移到业务就是了.
  可惜的是日前存在数据库的数据没办法通过使用这种方法来缓存(当然是可以通过单件模式以及辅助的方法来提高一点效率,但很别扭),在1.X下Cache只提供基于时间,关键字,文件创建依赖性,好消息是在2.0已经提供基于数据库来创建Cache依赖性,热切地期盼VS2005!
  另外,System.Web.HttpRuntime.AppDomainAppVirtualPath是可以找到当前应用的虚拟目录的,System.Web.HttpContext.Current 与页面后台的Page.Context是等价的,有许多情况下应该也是很有用.但同样,如果在底层使用了这些方法,增加了组件之间的耦合,而且这些组件也只能放在Web下用了.
  如果其他朋友有好的办法或方法,多指教.

转载于:https://www.cnblogs.com/PengNian/archive/2005/01/08/88552.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值