2

我在一个工作项目中同时使用 IBatis.NET 和 Spring.NET,我想知道我是否可以利用这两个/任何一个框架来实现对我的 DAL 层的所有调用的“每个请求缓存”。换句话说,每次 HTTP 请求由 ASP.NET 提供服务时,我想首先调用 DAL 方法来访问远程数据库,但之后的所有调用都会从缓存中膨胀。

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

4

1 回答 1

2

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

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

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

于 2009-12-23T21:38:38.110 回答