2013-04-15 3 views
1

Je souhaite basculer entre l'exécution de durig en mode cache et non-mise en cache. Je sais que c'est possible en enlevant l'étiquette. Mais cela nécessite une reconstruction du code source/redéploiement. Si j'ai trouvé une erreur anormale avec le cache infinispan (timeout, ou noeud inaccessible - j'utilise le hot-rod infinispan), je dois passer en mode non-cache.cache de printemps en utilisant infinispan

Est-il possible d'étendre l'intercepteur de cache de printemps et de renvoyer des valeurs nulles pour que l'application récupère les valeurs de DB. Fondamentalement, tous les appels à cacheinterceptor doivent être ignorés.

Merci de partager l'information si l'un d'entre vous a fait quelque chose de similaire.

Répondre

0

Je pense qu'il y a au moins 2 solutions pour ce problème. Tout d'abord, vous pouvez créer votre propre implémentation CacheInterceptor et y placer le code de commutation. Ensuite, vous devrez indiquer à Spring d'utiliser votre CacheInterceptor personnalisé. ProxyCachingConfiguration classe pourrait être un bon endroit pour commencer l'enquête.

La deuxième solution consiste à modifier le code d'intégration Infinispan Spring et à y ajouter des fonctionnalités de commutation. Pour ce faire, vous devez remplacer SpringRemoteCacheManagerFactoryBean, SpringRemoteCacheManager et SpringRemoteCache. Je conseillerais de mettre le code de commutation dans SpringRemoteCache # get.

Questions connexes