[高速]使いやすいSpringBootと便利な春のキャッシュ・キャッシング・フレームワークを学ぶすぐに始めます

序文

キャッシュは、開発に非常に一般的です。何のキャッシュ、運ぶために純粋にデータベースが存在しない場合は、高度並行システムでは、その後、圧力がダウンタイムの状況でも発生する可能性がある、非常に大規模なデータベースになります。この記事では、Springキャッシュ・キャッシング・フレームワークを学ぶために行くことができます。

元の文

[ナゲッツ数Happyjavaに掲載され、この資料]。ハッピーナゲッツアドレス:https://juejin.im/user/5cc2895df265da03a630ddca、ハッピーの個人ブログ:http://blog.happyjava.cn転載へようこそますが、このセクションで宣言は保持されなければなりません。

SpringBootプロジェクトの作成

迅速に初期化し、春でSpringBootプロジェクトを作成するを参照することができます:http://blog.happyjava.cn/articles/7.html

依存性の導入

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-cache</artifactId>
</dependency>

キャッシュを開いEnableCaching

@Configuration
@EnableCaching
public class CacheConfig {

    /**
     * 默认就是这种配置,可以不写
     */
    @Bean
    public CacheManager cacheManager() {
        return new ConcurrentMapCacheManager();
    }

}

SpringBootでは、デフォルトのキャッシュが可能にも書いていないConcurrentMapCacheManagerの方法、です。ここでは、CacheManagerの、などのRedis、Ehcacheの等によって異なるキャッシュ実装を構成することができます。次の章では、次に説明します。

そこConcurrentMapCacheManagerコンストラクタは、可変のパラメータをオーバーロード

それはあなたがキャッシュ名を設定した場合、その後の方法は唯一それ以外の場合は、例外がスローされます、ここでのキャッシュ設定を使用することができ、上院にcacheNameを指定を受けました。引数なしのコンストラクタた場合は、変数キャッシュマネージャです。

キャッシュ可能なコメント

キャッシュ可能な注釈はキャッシュを設定するために使用されています。次のように一般的な注釈付き:

値またはcacheNames

実際には、上記のcacheNameを指定され、キャッシュの使用を指定します。引数なしConcurrentMapCacheManager場合は、これは自分自身の使用やその他の要因に応じてカスタマイズすることができます。

キー

キャッシュのキーは、単に地図のように、キャッシュの操作への鍵です。

ここでは受け入れられているのSpeI表現。SPEL式について、以下の簡単な説明されるように:

私たちは、以下のメソッドがあります:

@CachePut(value = "listUsers", key = "#username")
public List<String> updateCache(String username) {
    System.out.println("执行了updateCache方法");
    return Arrays.asList("Happyjava", "Hello-SpringBoot", System.currentTimeMillis() + "");
}

パラメータは#paramNameの方法によって得ることができます

次のようにルートオブジェクトが使用されているがあります。

@CachePut(value = "listUsers", key = "#root.methodName+#username")
public List<String> updateCache(String username) {
    System.out.println("执行了updateCache方法");
    return Arrays.asList("Happyjava", "Hello-SpringBoot", System.currentTimeMillis() + "");
}

実際に使用するインテリジェントで柔軟IDEAによって促さ覚えて、必要はありません、:

各パラメータには、私たちが一目であると信じて、意味を表します。

調子

あなたは、このフィールドを使用している場合、キャッシュ制御条件は、結果だけが真で、結果がキャッシュされます。

@Cacheable(value = "listUsers", condition = "#username.length()>5")
public List<String> listUsers(String username) {
    System.out.println("执行了listUsers方法");
    return Arrays.asList("Happyjava", "Hello-SpringBoot", System.currentTimeMillis() + "");
}

キャッシュは、例の下に掲載して配置します:

@Cacheable(value = "listUsers", key = "#root.methodName+#username", condition = "#username.equals('Happyjava')")
public List<String> listUsers(String username) {
    System.out.println("执行了listUsers方法");
    return Arrays.asList("Happyjava", "Hello-SpringBoot", System.currentTimeMillis() + "");
}

のみを繰り返し印刷によってかどうか、結果がキャッシュされていない「Happyjava」に等しいusernameパラメータは、とき:「listUsersメソッドの実装」を決定します

CachePutコメント

私は、HTTPプロトコルおなじみの友人がこのコメントでやっている知っている名前を見て信じています。私たちは、CachePutコメントしてキャッシュを更新することができます。コモン、キャッシュ可能なその注釈は一貫しています。次の例は、キャッシュの更新について説明します。

@CachePut(value = "listUsers", key = "#username", condition = "#username.equals('Happyjava')")
public List<String> updateCache(String username) {
    System.out.println("执行了updateCache方法");
    return Arrays.asList("Happyjava", "Hello-SpringBoot", System.currentTimeMillis() + "");
}

私たちは、キー値と対応する試験キャッシュ可能メモを書くことができます。

@Cacheable(value = "listUsers", key = "#username", condition = "#username.equals('Happyjava')")
public List<String> listUsers(String username) {
    System.out.println("执行了listUsers方法");
    return Arrays.asList("Happyjava", "Hello-SpringBoot", System.currentTimeMillis() + "");
}

テスト結果は期待されている:CachePutメソッドを呼び出した後、キャッシュ可能な方法は、新しい結果を返します。

CacheEvictコメント

これは、削除コメントです。上記の3つの一般的に使用されるパラメータ、2冊のノートに加えて、BooleanパラメータですallEntriesは、そこにある、デフォルトでは意味し、偽である「すべてのキャッシュを削除するために。」真の場合、偽の場合には、単にキャッシュに対応するキーを削除し、それは(もちろん、対応する値である)すべてのキャッシュを削除します。

@CacheEvict(value = "listUsers", key = "#username")
public void deleteCache(String username) {
    System.out.println("执行了deleteCache方法");
}

@CacheEvict(value = "listUsers", allEntries = true)
public void deleteAllCache() {

}

概要

もちろん、これは実際には、我々よりも頻繁ではないような使用、春のキャッシュ例の単なるクイックスタートです。実際のプロジェクトでは、Redisのする方がそれを説明するために次の記事で使用すると(実際には、物事のいくつかの設定です)

参照コード

https://github.com/Happy4Java/hello-springboot

国民の関心をリードする情報なし

検索公共Happyjava数は[]、[返信]や[ビデオ]電子書籍、電子書籍あなたは、品質とビッグデータ、カフカ、nginxの、MySQLと他のビデオの多くを得ることができます

关注Happyjava公众号

おすすめ

転載: www.cnblogs.com/happy4java/p/11224148.html