グアバのツールを使用してキャッシュ

 

パッケージcom.study。

輸入java.util.concurrent.Callable。
輸入java.util.concurrent.ExecutionException。
輸入java.util.concurrent.TimeUnit。

輸入org.junit.Test;

輸入com.google.common.cache.CacheBuilder。
輸入com.google.common.cache.RemovalListener。
輸入com.google.common.cache.RemovalNotification。
輸入com.google.common.cache.Cache ;;
/ **
 *グアバキャッシュテスト
 *     
 * @Author     pengbo.zhao
 * @Data 2019インディアン11越5 Riを午前十時24分15秒AM
 *     
 * 
 *キャッシュの作成
 * 
 {* @link #createCache()}単純なキャッシュを作成
 *  
 *  
 *  
 * / 
パブリック・ クラスGuavaCache {
    
    
    
    @テスト
    公共 ボイド createCacheは()スローExecutionExceptionを{
        キャッシュ <文字列、文字列>キャッシュ= CacheBuilder.newBuilder()
                                    
                                    // 設定同時の数(同時CPUの数を決定するために、現在のオペレーティングシステムの数を得るために)
                                    .concurrencyLevel(Runtime.getRuntime()。AvailableProcessorsは())
                                     // 設定された初期容量 
                                    .initialCapacity(1000 // ストレージの最大量を設定 
                                    (.maximumSizeを900 // (3秒)が使用されていない有効期限設定 
                                    .expireAfterAccess(3 )、TimeUnit.SECONDSを
                                     // (3秒)が書き込みを満了した有効期限を設定し 
                                    .expireAfterWriteを(。3、TimeUnit.SECONDS)
                                     // クリア設定された基準(設定値記憶弱参照)
                                    .weakValues()
                                     // 設定統計     
                                    .recordStats()
                                     // 設定除去通知 
                                    .removalListener(新しい新しい RemovalListener <文字列、文字列> (){
                                        @オーバーライド
                                        公共 ボイド onRemoval(RemovalNotification <文字列、文字列> 通知){
                                            System.out.println(notification.getKey() + " - " + notification.getValue()+ "削除されました" )。
                                        }
                                    })
                                    // ビルド
                                    .build();
        
            cache.put( "キー1"、 "VALUE1" )。
            System.out.println(cache.getIfPresent( "キー1" ));
            文字列KEY2 = cache.get( "KEY2"、新しい呼び出し可能<ストリング> (){
                @オーバーライド
                公共の文字列()の呼び出しでスロー例外{
                     リターン「値2」を
                }
            });
            System.out.println(KEY2)。
    }
}

 

おすすめ

転載: www.cnblogs.com/MrRightZhao/p/11800776.html