Spring Boot og koffein cache
1. Oversikt
Koffeincache er et høyt ytende hurtigbibliotek for Java. I denne korte opplæringen vil vi se hvordan du bruker den med Spring Boot.
2. Avhengigheter
For å komme i gang med koffein og vårstøvel legger vi først til spring-boot-starter-cache og koffein avhengigheter:
org.springframework.boot spring-boot-starter-cache com.github.ben-manes.caffeine koffein
Disse importerer basestøtten for vårbufring, sammen med koffeinbiblioteket.
3. Konfigurasjon
Nå må vi konfigurere caching i vår Spring Boot-applikasjon.
Først lager vi en Koffein bønne. Dette er hovedkonfigurasjonen som vil kontrollere cache-oppførsel, for eksempel utløp, bufferstørrelsesgrenser og mer:
@Bean public Caffeine caffeineConfig () {return Caffeine.newBuilder (). ExpireAfterWrite (60, TimeUnit.MINUTES); }
Deretter må vi lage en ny bønne ved hjelp av våren CacheManager grensesnitt. Koffein gir implementeringen av dette grensesnittet, som krever Koffein objektet vi opprettet ovenfor:
@Bean public CacheManager cacheManager (Caffeine caffeine) {CaffeineCacheManager caffeineCacheManager = new CaffeineCacheManager (); caffeineCacheManager.setCaffeine (koffein); returner koffeinCacheManager; }
Til slutt må vi aktivere caching i Spring Boot ved hjelp av @EnableCaching kommentar. Dette kan legges til hvilken som helst @Konfigurasjon klasse i søknaden.
4. Eksempler
Med caching aktivert og konfigurert til å bruke koffein, la oss se på noen få eksempler på hvordan vi kan bruke caching i vår Spring Boot-applikasjon.
Den primære måten å bruke cache i Spring Boot er med @Cacheable kommentar. Denne kommentaren fungerer på en hvilken som helst metode for en vårbønne (eller til og med hele klassen). Den instruerer den registrerte hurtigbehandleren om å lagre resultatet av metodeanropet i en hurtigbuffer.
En typisk bruk er innenfor serviceklasser:
@Service public class AddressService {@Cacheable public AddressDTO getAddress (long customerId) {// oppslag og returresultat}}
Bruker @Cacheable kommentar uten parametere vil tvinge Spring til å bruke standardnavn for både hurtigbuffer og hurtigbuffernøkkel.
Vi kan overstyre begge disse atferdene ved å legge til noen parametere i kommentaren:
@Service public class AddressService {@Cacheable (value = "address_cache", key = "customerId") public AddressDTO getAddress (long customerId) {// lookup and return result}}
Eksemplet ovenfor forteller Spring å bruke en hurtigbuffer som heter adresse_buffer og Kunde ID argument for hurtignøkkelen.
Til slutt, fordi cache-manager selv er en vårbønne, vi kan også koble den til en hvilken som helst annen bønne og jobbe med den direkte:
@Service offentlig klasse AddressService {@Autowired CacheManager cacheManager; public AddressDTO getAddress (long customerId) {if (cacheManager.containsKey (customerId)) {return cacheManager.get (customerId); } // oppslagsadresse, cache-resultat, og returnere det}}
5. Konklusjon
I denne veiledningen har vi sett hvordan du konfigurerer Spring Boot til å bruke koffeinbuffer, sammen med noen eksempler på hvordan du bruker caching i applikasjonen vår.
Og selvfølgelig ligger alle kodeeksemplene på GitHub.