【发布时间】:2025-12-25 18:40:16
【问题描述】:
与此线程类似,但不完全是:How To Cache Information In A Threadsafe Manner
处理“参考数据”的通常模式是什么——应用程序经常读取的数据,通常在数据库或属性文件中外部化,但很少更新(几天、几周、几个月)?当数据更新时,它会在外部更新。
这通常是一个单例,我可以用 DAO 注入,从而能够管理它自己的内容吗?我喜欢在该服务上公开一个 refresh() 方法来强制刷新(即,通过 MBean - 所以我不必反弹应用程序)的想法。
从另一个 SO 线程来看,听起来人们可能只是在必要时实例化 DAO 并在该级别透明地缓存。
我有点喜欢将单例服务注入从数据库加载数据的真实 DAO 或返回硬编码响应的模拟/测试替身的想法。但是,如果我要通过 java 枚举将服务实现为单例,这会使通过 Spring 将其连接起来有点问题。
那么,其他人通常如何处理参考数据?随意查询但在后台进行缓存?还是单独的内存服务?
【问题讨论】:
标签: java spring design-patterns static-data