Spring Boot og koffein cache
1. Oversigt
Koffein-cache er et højtydende cache-bibliotek til Java. I denne korte vejledning ser vi, hvordan du bruger det med Spring Boot.
2. Afhængigheder
For at komme i gang med koffein og Spring Boot, tilføjer vi først spring-boot-starter-cache og koffein afhængigheder:
org.springframework.boot spring-boot-starter-cache com.github.ben-manes.caffeine koffein
Disse importerer basisfjedercachestøtten sammen med koffeinbiblioteket.
3. Konfiguration
Nu skal vi konfigurere caching i vores Spring Boot-applikation.
Først opretter vi en Koffein bønne. Dette er den vigtigste konfiguration, der styrer cache-opførsel, såsom udløb, cache-størrelsesgrænser og mere:
@Bean public Caffeine caffeineConfig () {return Caffeine.newBuilder (). ExpireAfterWrite (60, TimeUnit.MINUTES); }
Dernæst er vi nødt til at oprette en anden bønne ved hjælp af foråret CacheManager interface. Koffein giver sin implementering af denne grænseflade, som kræver Koffein objekt, vi oprettede ovenfor:
@Bean offentlig CacheManager cacheManager (koffein koffein) {CaffeineCacheManager caffeineCacheManager = ny CaffeineCacheManager (); caffeineCacheManager.setCaffeine (koffein); returnere koffeinCacheManager; }
Endelig skal vi aktivere caching i Spring Boot ved hjælp af @EnableCaching kommentar. Dette kan tilføjes til enhver @Konfiguration klasse i applikationen.
4. Eksempler
Med caching aktiveret og konfigureret til at bruge koffein, lad os se på et par eksempler på, hvordan vi kan bruge caching i vores Spring Boot-applikation.
Den primære måde at bruge cache i Spring Boot på er @Cacheable kommentar. Denne kommentar fungerer på en hvilken som helst metode til en springbønne (eller endda hele klassen). Det instruerer den registrerede cache-manager om at gemme resultatet af metodeopkaldet i en cache.
En typisk anvendelse er inden for serviceklasser:
@Service public class AddressService {@Cacheable public AddressDTO getAddress (long customerId) {// lookup and return result}}
Bruger @Cacheable annotering uden parametre vil tvinge Spring til at bruge standardnavne til både cache- og cache-nøglen.
Vi kan tilsidesætte begge disse adfærd ved at tilføje nogle parametre til kommentaren:
@Service public class AddressService {@Cacheable (value = "address_cache", key = "customerId") public AddressDTO getAddress (long customerId) {// lookup and return result}}
Eksemplet ovenfor fortæller Spring at bruge en cache med navnet adresse_cache og Kunde ID argument for cache-nøglen.
Endelig, fordi cache-manager i sig selv er en Spring bean, vi kan også tråde den ind i enhver anden bønne og arbejde med den direkte:
@Service offentlig klasse AddressService {@Autowired CacheManager cacheManager; public AddressDTO getAddress (long customerId) {if (cacheManager.containsKey (customerId)) {return cacheManager.get (customerId); } // opslagsadresse, cache-resultat, og returner det}}
5. Konklusion
I denne vejledning har vi set, hvordan vi konfigurerer Spring Boot til at bruge koffein-cache sammen med nogle eksempler på, hvordan man bruger cache i vores applikation.
Og selvfølgelig findes alle kodeeksemplerne på GitHub.