在 Java 中缓存列表(或其他集合)的简单方法是什么

Kra*_*kul 3 java collections caching

我有一个从数据库中拉出的列表形式的集合,一旦拉出就永远不会改变;系统中的每个用户都会看到相同的内容。我一直在尝试找出最简单的缓存方法。我知道我可以使用 Guava 中的 CacheBuilder,但创建一个包含 1 个永远不会改变的项目的缓存地图似乎有点矫枉过正。

Kra*_*kul 6

从上面的@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)