問題タブ [spring-cache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
41018 参照

spring - Spring Data リポジトリでの Spring の宣言型キャッシング サポートをテストする方法は?

MemberRepositoryを拡張する Spring Data リポジトリ、インターフェイスを開発しましたorg.springframework.data.jpa.repository.JpaRepositoryMemberRepositoryメソッドがあります:

結果は、Spring キャッシュ抽象化によってキャッシュされます (によってサポートされますConcurrentMapCache)。

私が抱えている問題は、結果が最初にdbから取得され、2回目にキャッシュから取得されることを主張する統合テスト(hsqldbに対して)を書きたいということです。

私は当初、jpa インフラストラクチャ (エンティティ マネージャーなど) をモックすることを考えていましたが、エンティティ マネージャーは 2 回目には呼び出されないと何らかの形で主張しましたが、難しすぎる/面倒だと思われます ( https://stackoverflow.com/a/23442457/536299を参照)。 )。

で注釈が付けられた Spring Data Repository メソッドのキャッシング動作をテストする方法について、誰かがアドバイスを提供できますか@Cacheable?

0 投票する
1 に答える
3846 参照

mockito - Spring データ リポジトリでの Spring の宣言型キャッシング サポートのテストに関する問題

Spring Data JPA リポジトリ (拡張) のSpring キャッシング サポート (ここでJpaRepository説明) をテストしようとしていますが、実際には構成に問題があります。

これが私のリポジトリメソッドです:

これが私のCacheConfigurationです:

これが私のテストです:

上記のテストを実行すると、型のオブジェクトがキーとしてSimpleKey渡され、としてnullが渡されることがわかりました。ConcurrentMapCache

私の場合、ストアのタイプは:com.google.common.cache.LocalCacheで、put メソッドには null チェックがあり、NPE が発生します....

スタック トレースは次のとおりです。

0 投票する
3 に答える
3543 参照

java - spring 3 でメソッド実行後に @Cacheable を強制的に動作させる方法は?

エンティティをデータベースに保存するメソッドがあります。それは次のとおりです。

Employee結果を key = idof でキャッシュしたいEmployee。メソッドの実行後に従業員idが割り当てられます。entityManager,persist私はそれ@CacheableがAOPのために機能することを知っています。デフォルトでは、employeeメソッドが実行される前にキャッシュに保存されcreateEmployeeます。

メソッドの実行後に強制的org.springframework.cache.annotation.@Cacheableにキャッシュに保存する方法は?

スタックトレース:

0 投票する
1 に答える
3533 参照

java - spring @Cacheable with Ehcache、有効なオブジェクトのスペル検索null

私は同様の問題を抱えていますが、時々うまくいきます。説明されているエラーは、たまにしか発生しません。

spring 3.2.5 と ehcache 2.6.5 を使用しています。

例外トレース:

私のキャッシングコードは次のとおりです。

これが発生した場合: tomcat7 をビルドして自動デプロイするようにジェンキンを構成した場合 / maven を使用して Eclipse WS をビルドし、tomcat7 にデプロイした場合。

これが完全に機能する場合: 一度失敗した後、MailFilterServiceImpl.java をいくつかのスペースで編集して、Eclipse で再コンパイルし、tomcat7 サーバーを再起動します。

CI シナリオで動作させる必要があります。

[更新] コンパイラ オプション debug:true を設定すると、この問題を回避できます。最適化されたものには何の発言権もないようです。

0 投票する
1 に答える
3706 参照

spring - Spring 4 キャッシュ キーの生成が期待どおりに機能しない

Spring をバージョン 4 にアップグレードした後、カスタム キー ジェネレーターが機能しなくなりました。移行前は、「生成」メソッドをオーバーライドするコードが実行されていましたが、Spring 4.0.5 に移行した後、コードはまったく実行されません。代わりに、SimpleKeyGenerator が常に実行されることがわかりました。これは春のバグですか?以前のバージョンで使用していたように、generate メソッドを独自のコードでオーバーライドできないのはなぜですか?

ルート コンテキストからのサンプル:

Java キー生成のサンプル (移行前)

}

移行後のサンプルコード

}

追加情報: コードをデバッグした後、「生成」メソッドが呼び出されるたびに、SimpleKeyGenerator でのみ実行され、カスタム CacheKeyGenerator クラスでは実行されないことがわかりました。理由を理解しようとしたので、デバッグを行いました。デバッグ中に、プライベート プロパティを持つ org.springframework.cache.interceptor.CacheAspectSupport クラスがあることがわかりました。このクラスには keyGenerator プロパティのセッター メソッドがあり、コンテキストが開始されると、このセッター メソッドがカスタム CacheKeyGenerator で呼び出されることがわかったので、構成は正しく、構成に問題はないと結論付けました。また、キーの生成が必要な場合、keyGenerator プロパティが「CacheKeyGenerator」の値を「失い」、「