【发布时间】:2013-12-05 01:33:41
【问题描述】:
我正在寻找一种通用的记忆器,它可以通过简单地在方法定义上方添加一个注释/装饰器来应用于任何方法。例如,Spring 框架提供了@Cacheable。 http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/cache.html
不过,我还需要以下功能:
- 缓存应该保留在磁盘上,这样当我再次运行代码时就不必重新计算值
- 缓存键应该是方法源代码的一个函数,这样如果我在运行之间更改我的代码,memoizer 不会错误地重新加载旧结果
在 Python 中,Joblib 是一个提供此功能的流水线工具。是否有可能让 Spring 的 @Cacheable 做到这一点?还是更轻的方式?
如果这会触发任何人的记忆,这里列出了一些看起来可能会有所帮助的工具。我无法对所有这些进行深入调查。
- Guava 的缓存库
- 方面J
- Ehcache(看来这超出了我的需要)
- javax.cache
- Java 缓存系统
- 流水线系统:pipe4j、Apache Commons Pipeline
- Tek271 Memoizer(文档不多)
【问题讨论】:
标签: java spring caching persistent memoization