Springは、さまざまなキャッシュ実装のCacheManagerインターフェイスを抽象化し、ユーザーはこのインターフェイスを使用して、基礎となる実装を気にせずにキャッシュを処理します。また、ビジネスコードを変更せずに、キャッシュの特定の実装に便利に変更することもできます。スプリングブートでキャッシュを使用するための簡単な紹介を次に示します。
1.依存関係を追加します
<Dependency> groupId> org.springframework.boot </groupid> <artifactid> spring-boot-starter-cache </artifactid> </dependency>
2。下の図に示すように、構成クラスのキャッシュをオンにします。
3.次のように、使用する必要がある方法に注釈を追加します。
@Override // @cacheput system.out.println( "idの場合、キーは"+p.getid()+"data cached"); pを返します。 }
@Override // @cacheevictこのアノテーションは、人のキーIDを使用してデータを削除します@cacheevict(value = "people"、key = "#id")public void remove(long id){system.out.println( "IDおよびkey"+id+"を使用してデータキャッシュを削除します"); //実際の削除操作はここで実行されません} @Override //@キャッシュ可能なこの注釈は、メソッドの実行時にキー#person.idのキャッシュが存在するかどうかを判断します。存在する場合、キャッシュ内のデータを直接返します。それが存在しない場合、データベースがチェックされ、戻り結果がキャッシュされます。 @cachable(value = "people"、key = "#person.id")public person findone(person person){person p = personrepository.findone(person.getid()); system.out.println( "idの場合、キーは"+p.getid()+"data cached"); pを返します。 }上記の部品はキャッシュを完了しましたが、現在のキャッシュはデフォルトでメモリベースであり、持続していません。以下は、次のように、キャッシュとしてのRedisの特定の実装です。
4.依存関係を追加します
<Dependency> groupId> org.springframework.boot </groupid> <artifactid> spring-boot-starter-redis </artifactid> </dependency>
5.構成ファイルにRedis構成を追加します
redis.hostname = localhost redis.port = 6379
6.スプリングコンテナでRedisを構成します
@configuration public class redisconfigは、cachingconfigurersupportを拡張します{private static final logger logger = loggerfactory.getlogger(redisconfig.class); @Autowired Private Environment Env; @bean public jedisconnectionfactory redisconnectionfactory(){jedisconnectionfactory redisconnectionFactory = new JedisconnectionFactory(); redisconnectionFactory.sethostname(env.getProperty( "redis.hostname")); redisconnectionFactory.setport(integer.parseint(env.getProperty( "redis.port"))); RedisconnectionFactoryを返します。 } @bean public redistemplate <string、string> redistemplate(redisconnectionfactory cf){redistemplate <string、string> redistemplate = new Redistemplate <>(); redistemplate.setConnectionFactory(cf); REDISTEMPLATEを返します。 } @bean public cachemanager cachemanager(redistemplate <?、?> redistemplate){rediscachemanager cachemanager = new RediscacheManager(Redistemplate); cachemanager.setDefaultExpiration(600); CacheManagerを返します。 }}わかりました、それは終わりました、他に何も変更する必要はありません、それは非常に便利ではありませんか?
さらに、キャッシュされるクラスはシリアル化する必要があります。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。