在ASP.NET中按请求缓存?

时间:2009-12-23 17:41:42

标签: asp.net caching request spring.net ibatis.net

我在工作项目中使用IBatis.NET和Spring.NET,我想弄清楚是否可以利用两个/两个框架来实现对我的DAL的所有调用的“按请求缓存”层。换句话说,每次ASP.NET提供HTTP请求时,我都想先调用DAL方法来命中远程数据库,但之后所有的调用都会从缓存中膨胀。

我已经看到一些articles描述了使用HttpContext.Current实现这一目标的方法,但我无法忍受用System.Web引用污染我的DAL层的想法。如果可能的话,我也想利用这些框架,因为我不喜欢重新发明轮子。

1 个答案:

答案 0 :(得分:2)

我不是IBatis.NET的专家,并且与Spring.NET的集成很可能更多的是感谢缺乏但是这里...

我会创建一个使用HttpContext.Current.Items的自定义ICache实现。然后我会使用Spring.NET AOP代理DAL层对象(它们在接口后面,不是吗?)。然后,只需使用AOP框架应用缓存建议即可。

您应该能够通过遵循关于AOP缓存的Spring.NET文档来实现这一点,并使用Spring.NET的ASP.NET缓存实现作为起点来实现ICache。