【发布时间】:2012-01-30 18:37:40
【问题描述】:
我需要在 servlet 启动时从数据库中“预加载”一些数据。
所以我想创建一些缓存,例如使用HashMap 或一些类似的同步版本。
我还需要在数据库更新更改时更新缓存。
所以我想添加某种“听众”。
我的问题是:这是以某种方式可用还是我必须实际实现它?
如果是,哪种设计模式是最好的方法?
更新:
没有使用 JPA 或 ORM。但是Spring可用
【问题讨论】:
-
您是否使用库来实现持久性?它们中的大多数已经支持各种形式的缓存,无需重新发明轮子。
-
否。直接 SQL 调用数据库
-
您的缓存是否需要分布到多个进程?写入操作是否需要更新其他缓存实例(或导致它们更新)还是仅与正在执行写入的进程相关?
-
@philwb:没有多个进程。仅与执行写入的进程相关。
-
还有一个问题 - 您的进程需要多快才能从数据库接收更改?轮询线程每分钟检查一次的时间是否足够长,或者您是否需要在数据库中有效地触发来广播更改?
标签: java design-patterns caching tomcat servlets