この記事では、Java Spring-cache のキー設定に関する注意事項を主に紹介します。編集者は、それを必要とする友人の参考のためにここで共有します。
プロジェクトの同時実行パフォーマンスを向上させるには、外部データ ソース アクセス、Restful API 呼び出し、再利用可能な複雑な計算の 3 種類の関数処理結果をキャッシュするローカル メモリ キャッシュの導入を検討してください。現在、Spring Cache の @Cacheable アノテーション メソッドが使用されており、キャッシュの具体的な実装は Guava Cache です。
ここでは具体的なキャッシュ構成については紹介しませんが、主要な構成については説明します。
@Cacheable(value="cacheName", key"#id") public ResultDTO method(int id);
2. 組み合わせ形式
@Cacheable(value="cacheName", key"T(String).valueOf(#name).concat('-').concat(#password)) public ResultDTO method(int name, String password);
3.フォーム
@Cacheable(value="cacheName", key"#user.id) public ResultDTO method(User user);
4. カスタム キー ジェネレーター
@Cacheable(value="gomeo2oCache", keyGenerator = "keyGenerator") public ResultDTO method(User user);注: Spring のデフォルトの SimpleKeyGenerator は、次のように関数名をキー
私たちは期待していました出力:
@Component public class CacheTestImpl implements CacheTest { @Cacheable("databaseCache") public Long test1() { return 1L; } @Cacheable("databaseCache") public Long test2() { return 2L; } @Cacheable("databaseCache") public Long test3() { return 3L; } @Cacheable("databaseCache") public String test4() { return "4"; } }
実際の出力は次のとおりです:
1 2 3 4
さらに、アトミックタイプの配列はキーとして直接使用しても効果がありません
上記 2 つの問題を解決するために、A をカスタマイズしましたKeyGenerator は次のとおりです:
1 1 1 ClassCastException: java.lang.Long cannot be cast to java.lang.String
このメソッドを使用すると、マルチパラメータ、アトミック型配列、メソッド名の識別などの問題を解決できます。
以上がJava Springのキャッシュキー設定に関する注意事項の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。