Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
分布式架构
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
ChatGPT
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
GitHub工具
更多话题
Ehcache 缓存Key 问题
09-08-24
huicn
项目中用Ehcache 对Service层进行缓存,其中的find 方法的参数都是 VO 对象,都是在Action 中new 出来的,Ehcache缓存的key 是类名+方法的名+参数名, 所以每次key 都不一样,请各位给个解决方案。
banq
2009-08-24 11:24
>key 是类名+方法的名+参数名
缓存的是对象实例,不是类,要将类和对象区别搞清楚。
但是,key也不能保存对象的hashcode,这是标识对象,不是标识领域模型,领域模型虽然以对象形式存在,但不等同于对象,所以,key应该是领域模型对象的标识.这个标识在
DDD
中有描述。
说白点,这个标识就是领域模型对象持久化保存到数据库中的唯一主键(如果是一个实体映射到一个表的话)。
cats_tiger
2009-08-24 16:30
>> 所以每次key 都不一样
这么说,你的缓存永远都不会被命中?
huicn
2009-08-24 19:27
缓存的是对象实例,不是类,要将类和对象区别搞清楚。
这个清楚,缓存的就是该方法返回的结果集,用到的key 就是类名+方法的名+参数名.
newobj
2014-04-27 19:28
倒是可以用包名+类型+方法名+参数.hashCode();来作为键.
下次执行同样的方法,可以实现读取缓存的效果.
但是这样有个问题,关联的数据跟新,怎么通知到这个key呢?
缓存设计