Spring Boot en cafeïnecache

1. Overzicht

Cafeïnecache is een krachtige cachebibliotheek voor Java. In deze korte tutorial zullen we zien hoe je het met Spring Boot kunt gebruiken.

2. Afhankelijkheden

Om aan de slag te gaan met Cafeïne en Spring Boot, voegen we eerst de spring-boot-starter-cache en cafeïne afhankelijkheden:

  org.springframework.boot spring-boot-starter-cache com.github.ben-manes.caffeïne cafeïne 

Deze importeren de basisondersteuning voor Spring-caching, samen met de Caffeine-bibliotheek.

3. Configuratie

Nu moeten we caching configureren in onze Spring Boot-applicatie.

Eerst maken we een Cafeïne Boon. Dit is de hoofdconfiguratie die het cachegedrag regelt, zoals verloop, limieten voor cachegrootte en meer:

@Bean public Caffeine caffeineConfig () {retourneer Caffeine.newBuilder (). ExpireAfterWrite (60, TimeUnit.MINUTES); }

Vervolgens moeten we nog een boon maken met behulp van de lente CacheManager koppel. Cafeïne zorgt voor de implementatie van deze interface, waarvoor het Cafeïne object dat we hierboven hebben gemaakt:

@Bean openbare CacheManager cacheManager (Cafeïne cafeïne) {CaffeineCacheManager caffeineCacheManager = nieuwe CaffeineCacheManager (); caffeineCacheManager.setCaffeine (cafeïne); retourneer caffeineCacheManager; }

Ten slotte moeten we caching inschakelen in Spring Boot met behulp van de @EnableCaching annotatie. Dit kan aan elk worden toegevoegd @Configuratie klasse in de applicatie.

4. Voorbeelden

Met caching ingeschakeld en geconfigureerd om cafeïne te gebruiken, laten we eens kijken naar een paar voorbeelden van hoe we caching kunnen gebruiken in onze Spring Boot-applicatie.

De belangrijkste manier om caching te gebruiken in Spring Boot is met de @Cacheable annotatie. Deze annotatie werkt op elke methode van een Spring bean (of zelfs de hele klas). Het instrueert de geregistreerde cachemanager om het resultaat van de methodeaanroep in een cache op te slaan.

Een typisch gebruik is binnen serviceklassen:

@Service public class AddressService {@Cacheable public AddressDTO getAddress (long customerId) {// lookup and return result}}

De ... gebruiken @Cacheable annotatie zonder parameters dwingt Spring om standaardnamen te gebruiken voor zowel de cache als de cachesleutel.

We kunnen beide gedragingen opheffen door enkele parameters aan de annotatie toe te voegen:

@Service public class AddressService {@Cacheable (value = "address_cache", key = "customerId") public AddressDTO getAddress (long customerId) {// zoek en retourneer resultaat}}

Het bovenstaande voorbeeld vertelt Spring om een ​​cache te gebruiken met de naam address_cache en de Klanten ID argument voor de cachesleutel.

Eindelijk, omdat de cachemanager zelf een springboon is, we kunnen het ook autowire in een andere boon en er direct mee werken:

@Service openbare klasse AddressService {@Autowired CacheManager cacheManager; openbaar AddressDTO getAddress (lange klant-ID) {if (cacheManager.containsKey (klant-ID)) {retour cacheManager.get (klant-ID); } // zoek adres, cacheresultaat, en retourneer het}}

5. Conclusie

In deze tutorial hebben we gezien hoe je Spring Boot configureert om cafeïne-cache te gebruiken, samen met enkele voorbeelden van hoe je caching in onze applicatie kunt gebruiken.

En natuurlijk bevinden alle codevoorbeelden zich op GitHub.