2016-09-27 1 views
0

データベースから引き出されたリストの形のコレクションは、一度取り出されると決して変更されません。システム内のすべてのユーザーには同じことが表示されます。私はそれをキャッシュする最も簡単な方法を理解しようとしています。私はGuavaのCacheBuilderを使うことができると知っていますが、決して変更されない1つの項目を持つキャッシュされた地図を作成することは過度のようです。上記@BenManesからJavaでリスト(または他のコレクション)をキャッシュする簡単な方法

+1

うーん、ちょうどあなたのオブジェクトのいずれかのどこかのメモリでそのリストを保ちますか? –

+1

Guavaの 'Suppliers.memoize()'は単一項目のキャッシュに適しています。 –

+0

@BenManesそれはまさに私が探していたものであり、完璧に働いています。 – Kraagenskul

答えて

0

は、私が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(); 
} 
関連する問題