首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >声明性Spring缓存定制

声明性Spring缓存定制
EN

Stack Overflow用户
提问于 2012-09-26 03:08:15
回答 2查看 744关注 0票数 0

我在我的项目中使用了基于Spring声明式注解的缓存。

applicationContext.xml

代码语言:javascript
运行
复制
<cache:annotation-driven />

目前,使用基于spring注解的缓存,一切都工作得很好。在开发环境和本地环境中,我们使用基于ehCacheConcurrentHashMap的底层缓存机制。

现在项目中有一个需求,我需要用一些特定的业务需求来更新Spring缓存框架的行为。

我想知道有没有人帮我弄清楚我该怎么替换它

代码语言:javascript
运行
复制
<cache:annotation-driven /> 

使用任何spring类定义的注释,我可以在其中自定义行为吗?

EN

回答 2

Stack Overflow用户

发布于 2012-09-26 03:32:53

查看org.springframework.cache.annotation.EnableCaching.请看源代码中的注释。

它做的等同于< />:注解驱动的缓存,但在spring java配置中。

你可能需要重写这个类: org.springframework.cache.aspectj.AnnotationCacheAspect

它负责将建议连接起来。

票数 2
EN

Stack Overflow用户

发布于 2012-09-29 04:29:19

这个答案把我引向了正确的方向。我发现spring缓存支持的内部工作原理是,它的依赖项不会被注入到cacheManager和KeyGenerator实现之外。我想对CacheAspectSupport进行子类化/扩展,发现这个类首先是由CacheInterceptor扩展的,然后在ProxyCachingConfiguration类中使用新的语句创建该类。为了能够替换一个类/方法,需要替换整个类列表,这听起来不太适合spring (诚然,我可能遗漏了一些东西)。

我期望替换这行代码的是一组完整列出的spring bean,它们组成了构成缓存支持的所有AOP切入点、建议/方面等,但看起来这就像是在静态地创建彼此之间紧密耦合的类。

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

https://stackoverflow.com/questions/12589516

复制
相关文章

相似问题

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