首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windsor拦截器AOP和缓存

Windsor拦截器AOP和缓存
EN

Stack Overflow用户
提问于 2008-09-18 16:53:14
回答 6查看 5.1K关注 0票数 7

我正在考虑使用Castle Windsor的拦截器来缓存数据,以帮助扩展asp.net站点。

有没有人有这样做的想法/经验?

次要说明:我的意图是使用Windsor截取“昂贵的”调用,并将其委托给MemCacheD或Velocity (或另一个分布式缓存)进行缓存本身。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2008-09-24 04:59:54

我一直在Windsor中使用缓存装饰器(而不是拦截器),它们工作得很好。

拦截器对此也很有帮助,参见this示例。

票数 2
EN

Stack Overflow用户

发布于 2008-10-13 13:23:34

嘿,我们已经使用了Castle Windsor拦截器,基于这篇文章:http://www.davidhayden.com/blog/dave/archive/2007/03/14/CastleWindsorAOPPolicyInjectionApplicationBlock.aspx以及上面提到的那个。

我发现整个事情都很简单,这是一种非常优雅的AOP方法。然而……

不过,要小心性能。使用拦截创建了一个动态代理,这肯定会减慢速度。基于我们使用500节点计算场的基准测试,我们发现在Windsor中使用拦截的性能下降了大约30%,这也超出了我们在拦截中所做的事情(本质上是记录方法调用和传入我们的方法的参数)。简单地删除拦截就可以大大加快整个应用程序的运行速度。

小心不要让你的昂贵的电话变得非常昂贵。:)如果我是你,我会考虑在不同的级别缓存,可能是通过实现一个IRepository类型模式,然后在适当的时候用各种缓存策略来支持它。

祝好运,

--

马特。

票数 4
EN

Stack Overflow用户

发布于 2008-09-18 17:29:52

您是如何实现数据访问的?如果你使用的是NHibernate,我建议在这里使用缓存。NHibernate为.NET内置缓存、memcached (通过NMemcachD)和Velocity提供了缓存策略。我已经广泛地将memcached用于企业级应用程序,并且没有遇到任何问题。

基于拦截器的缓存机制是一个有趣的想法,我以前从未想过这个想法。这将非常容易透明地应用。我认为我喜欢使用Castle的AOP特性是因为它是基于代理的,你不必用属性污染你的代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/94410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档