I.はじめに
キャッシュの春春のカプセル化はEHCacheなど、Redisの、グァバ他のキャッシュのためにキャッシュされます。
第二に、役割
主な方法は、例えば、キャッシュを処理するために注釈を使用することで、我々はRedisのキャッシュを使用する場合、データのクエリ、もし空でない場合は、空の中に見出された結果は、それがメモリキャッシュのRedisにつながるかどうかを決定しますクエリ、分析層は、ここで必要とされ、注釈春のキャッシュ処理と、目的を達成することができます判断するために必要とされていません。
例:
前使用します。
公共の一覧<ユーザ> selectByUsernameRedis(文字列名){ 文字列のキー =「ユーザー:ユーザー名:」+ ユーザ名。 一覧 <ユーザー> USERLIST = userMapper.selectByuserName(ユーザー名); もし(!userList.isEmpty()){ 。stringRedisTemplate.opsForValue()セット(キー、JSON.toJSONString(ユーザリスト)); } 戻りUSERLIST。 }
使用後:
@Cacheable(値= "ユーザ"、キー= "#username" ) 公衆リスト<ユーザー> selectByUsernameRedis1(文字列名){ 戻りuserMapper.selectByuserName(ユーザ名) }
第三に、設定と使用
パッケージとの統合だけではRedisのと一致プロフィールをご紹介し、ここでは記載していません。
構成を@EnableCaching 1、主な機能の増加、主な機能が@EnableCaching構成を添加しなかった場合、次の設定が有効ではありません。
パッケージcom.example.demo。 輸入org.springframework.boot.SpringApplication。 輸入org.springframework.boot.autoconfigure.SpringBootApplication。 輸入org.springframework.cache.annotation.EnableCaching。 @SpringBootApplication @EnableCaching パブリック クラスDemoApplication { 公共 静的 ボイドメイン(文字列[]引数){ SpringApplication.run(DemoApplication。クラス、引数)。 } }
図2に示すように、コードの実装
次のようにキャッシュ可能な@があり、CachePut @、CacheEvict 3のノート@、対応は次のとおりです。
直接的なリターンがある場合は、クエリ、クエリキャッシュを@Cacheable;、データベースを照会ない場合、結果が直接キャッシュに空ではありません。
キャッシュされた@CachePut、新規または更新されたメソッドに適用されます。
キャッシュを削除@CacheEvict、適切な方法を削除します。
@CachePut(値= "ユーザ" ) @Override パブリック文字列するsaveOrUpdate(ユーザユーザ){ userMapper.insert(ユーザ)。 返すJSON.toJSONString(ユーザ); } @Cacheable(値 = "ユーザ"、キー= "#ID" ) @Override パブリック文字列取得(ロングID){ 戻りJSON.toJSONString(userMapper.selectByUserId(ID))。 } @CacheEvict(値 = "ユーザ"、キー= "#ID" ) @Override 公共 ボイドは(ロングID)を削除{ userMapper.deleteByUserId(ID)。 }