Kra*_*kul 3 java collections caching
我有一个从数据库中拉出的列表形式的集合,一旦拉出就永远不会改变;系统中的每个用户都会看到相同的内容。我一直在尝试找出最简单的缓存方法。我知道我可以使用 Guava 中的 CacheBuilder,但创建一个包含 1 个永远不会改变的项目的缓存地图似乎有点矫枉过正。
从上面的@BenManes,我使用了Suppliers.memoize:
private Supplier<Collection<Person>> cache = Suppliers.memoizeWithExpiration(
new Supplier<Collection<Employee>>() {
public Collection<Employee> get() {
return getAllEmployees();
}
}, 1, TimeUnit.DAYS);
public Collection<Employee> getAllEmployees() {
return cache.get();
}
Run Code Online (Sandbox Code Playgroud)