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