关于从缓存中获取 Model, 请 banq 或高手指点一下, 谢谢.

Jdon 把从缓存中获取 Model 的逻辑放在 Action 里面, 请解释一下这样做的理由. 貌似 Action 只是应该负责控制流程和选择视图啊.

把这部分放在一个 CacheService 里面, 然后需要从缓存加载 Model 的 Service 继承它是不是更好呢?

比如我因为内存的因素, 希望象以前那样直接从 Dao 返回 Model 集合而不是返回 id 集合. 如果用当前的 JF, 貌似多了很多不必要的东西.

>缓存中获取 Model 的逻辑放在 Action 里面
其实也不必这么做,因为有Cache拦截器在起作用,这样做,但是拦截器AOP机制需要动态代理实现,后者性能有影响,直接在代码写是最快得,对于框架用户都是没有关系的。

>前那样直接从 Dao 返回 Model 集合而不是返回 id 集合
这是Hibernate二级缓存也采取的原理,这个原理也是jive的缓存基本机制。随着访问量增大,缓存击中率高,也就是所谓越访问越快。

那么, 可否有条件缓存呢? 如主题列表, 前几页可能是经常被访问的, 但越往后, 被访问的几率就很小了. 但也可能存在有人想翻看旧帖子, 他一口气点几十个页面, 这样的话, 需要缓存上百个 thread Model, 太耗内存了.

另, 它是象 EJB 那样, 需要序列化和反序列化吗?

你不需考虑是否耗内存,或者序列化这些事情。这些都是大访问量才会出现的解决方案。

内存用来就是耗的,不用白不用,控制住资源比不受控制资源更安全,更保护硬件。这些话题比较深入了。离题了

我只想知道是不是需要反序列化的, 也就是说当多个人请求同一个对象的时候, 是不是使用的同一个内存.

另外, 对于缓存的命中率, banq 认为是否应该研究一下, 适当作些改进呢.