Printemps est un conteneur et un framework de développement léger, d'injection de dépendances et orienté aspect pour Java. Il réduit la complexité globale du développement J2EE et offre une cohésion élevée et un couplage lâche. En raison des avantages qu'offre Spring, de nombreux développeurs l'utilisent pour créer des applications à fort trafic de petite à grande entreprise.
Mais ces applications Spring à fort trafic sont confrontées à un problème majeur d'évolutivité. Bien qu'ils puissent évoluer en ajoutant davantage de serveurs à la batterie de serveurs d'applications, leur serveur de base de données ne peut pas évoluer de la même manière pour gérer la charge de transaction croissante. Dans de telles situations, un cache distribué Java est votre meilleur pari à gérer car il décharge votre base de données en réduisant ces déplacements de base de données coûteux et améliore également les performances de votre application.
NCache Détails NCache Docs NCache Documents de mise en cache de printemps
Pourquoi Spring Application avec NCache?
NCache, un cache distribué en mémoire a implémenté le fournisseur Spring Caching en introduisant un mécanisme de cache Java générique avec lequel vous pouvez facilement mettre en cache la sortie de vos méthodes gourmandes en CPU, chronophages et liées à la base de données de l'application Spring. Cette approche réduit non seulement la charge de la base de données, mais réduit également le nombre d'exécutions de méthodes et améliore les performances des applications. Dans ce blog, je discuterai plus en détail de la configuration de Spring Caching avec NCache.
NCache Détails NCache en tant que cache de données Spring Configurer l'application à l'aide de NCache
Comment configurer la mise en cache Spring à utiliser NCache?
NCache fournit un support de mise en cache Spring via Fournisseur générique de mise en cache Spring, Où NCache agit en tant que gestionnaire de cache pour votre application Spring et via Fournisseur de mise en cache JCache, Où NCache utilise la fonctionnalité prise en charge de JCache. Suivez simplement les étapes ci-dessous pour les deux façons et configurez NCache avec votre application Spring.
Fournisseur générique de mise en cache Spring
Pour configurer votre application Spring avec NCache Générique Spring Caching Provider, vous devez d'abord ajouter le Dépendance Maven ce printemps et NCache fournit. Ensuite, définissez les beans dans votre application Spring via Définition de bean basée sur Java or Définition de bean basée sur XML.
Pour définir des beans à l'aide d'une définition basée sur Java, vous devez ajouter le @Bean
annotation dans le CachingConfiguration
classe où le setConfigFile()
spécifiera le chemin d'accès à votre ncache-spring.xml
fichier, illustré ci-dessous.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
@Configuration @EnableCaching public class CachingConfiguration { @Bean public CacheManager cacheManager() { SpringConfigurationManager springConfigurationManager = new SpringConfigurationManager(); URL resource = getClass().getClassLoader().getResource("ncache-spring.xml"); springConfigurationManager.setConfigFile(resource.getPath()); NCacheCacheManager cacheManager = new NCacheCacheManager(); cacheManager.setSpringConfigurationManager(springConfigurationManager); return cacheManager; } } |
Pour définir des beans à l'aide d'une définition basée sur XML, vous devez ajouter un fichier xml qui active la mise en cache et spécifie NCache en tant que gestionnaire de cache. Les balises bean doivent être définies pour les deux cacheManager
ainsi que le NCacheConfigurationManager
. Aussi, les springConfigurationManager
ainsi que le logFilePath
Les propriétés doivent être spécifiées pour cacheManager. Pour plus de détails sur ces propriétés, consultez notre Documents de mise en cache de printemps.
NCache Le gestionnaire de cache utilise le ncache-spring.xml
fichier, où les caches doivent être configurés et définis avec son propre ensemble de propriétés. Un exemple de code est donné ci-dessous.
1 2 3 4 5 |
<application-config default-cache-name="default"> <caches> <cache name="CustomerCollectionCache" ncache-instance="demoCache" priority="normal" expiration-type="absolute" expiration-period="10"/> </caches> </application-config> |
Fournisseur de mise en cache Spring JCache
Spring prend également en charge les fournisseurs de mise en cache des plaintes JCache où vous pouvez utiliser JCache dans votre application Spring avec NCache. Ajoutez la dépendance Maven requise pour Spring Framework ou Spring Boot et NCache pour l'intégration. Configurez ensuite votre cache pour l'application JCache Spring.
Vous pouvez configurer votre cache avec les deux méthodes expliquées plus en détail. La première est que vous pouvez ajouter spring.cache.cache-names
tag dans le application.properties
dossier. Le nom du cache doit être le même que celui configuré dans NCache Web Manager.
1 |
spring.cache.cache-names=demoCache,booksCache |
L'autre est que vous pouvez configurer votre cache via le JCacheManagerCustomizer
classe qui initialise le cache à l'exécution avec la configuration souhaitée.
1 2 3 4 5 6 7 8 9 10 11 |
@Configuration public class CacheConfiguration implements JCacheManagerCustomizer { @Override public void customize(CacheManager cacheManager) { MutableConfiguration mutableConfiguration = new MutableConfiguration(); mutableConfiguration.setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(Duration.ONE_MINUTE)); cacheManager.createCache("booksCache", mutableConfiguration); } } |
Identifier les méthodes qui doivent être mises en cache à l'aide de la déclaration de mise en cache
Une fois que vous avez activé la mise en cache dans les deux configurations définies ci-dessus, l'étape suivante consiste à lier maintenant ces comportements de mise en cache à leurs méthodes respectives afin d'utiliser NCache en tant que fournisseur de mise en cache pour Spring.
Vous pouvez lier les comportements de mise en cache à leurs méthodes de deux manières. L'un est à travers Mise en cache des annotations et l'autre est à travers Mise en cache déclarative basée sur XML. Pour obtenir une compréhension détaillée, rendez-vous sur Configurer la mise en cache de la déclaration Spring Docs.
Exemple de code suivant utilisant l'annotation @Cacheable pour effectuer la mise en cache sur le service Web contenant le cache booksCache.
1 2 3 4 5 6 7 8 9 |
// BookService.java @Service public class BookService { @Cacheable("booksCache") public String getBookNameByIsbn(String isbn) { return findBookInSlowSource(isbn); } // further code } |
NCache Détails Documentation de l'API JCache Hibernation de la mise en cache
Conclusion!
En utilisant NCache en tant que fournisseur de Spring Caching, vous pouvez faire évoluer vos applications Spring de manière linéaire et avec des performances améliorées. Modifiez simplement vos fichiers de configuration et vous êtes prêt à partir ! Alors, téléchargez NCache maintenant et essayez-le par vous-même !