@Cacheable, @CachePut, @CacheEvict
Styr bufreadferden nøyaktig.
@Cacheable, @CachePut, @CacheEvict er en gratis leksjon i Spring Boot 4-mikrotjenester og REST API-er på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Spring Boot 4-mikrotjenester og REST API-er, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Spring Boot 4-mikrotjenester og REST API-er inneholder totalt 4 leksjoner.
De tre hurtigbufferannotasjonene
Spring tilbyr tre hurtigbufferannotasjoner på metodennivå:
@Cacheable– les gjennom og lagre resultatet@CachePut– kjør alltid og oppdater hurtigbufferen@CacheEvict– fjern oppføringer
@Cacheable
@Cacheable kontrollerer hurtigbufferen først. Ved bom kjøres metoden, og resultatet lagres.
@Cacheable("products")
public Product findById(Long id) {
return repository.findById(id).orElseThrow();
}Betinget hurtigbufring
Bruk condition for å hurtigbufre bare når et predikat er oppfylt, og unless for å hoppe over hurtigbufring av bestemte resultater.
@Cacheable(value = "products",
unless = "#result == null")
public Product findById(Long id) { ... }@CachePut
@CachePut kjører alltid metoden og lagrer den returnerte verdien – ideelt for oppdateringsmetoder som skal oppdatere hurtigbufferen.
@CachePut(value = "products", key = "#product.id")
public Product update(Product product) {
return repository.save(product);
}Cacheable kontra CachePut
@Cacheable kan hoppe over metoden ved et treff, mens @CachePut aldri hopper over den. Bruk aldri begge på samme metode – virkemåtene er motstridende.
@CacheEvict
@CacheEvict fjerner en oppføring, vanligvis etter en sletting eller oppdatering som gjør hurtigbufrede data ugyldige.
@CacheEvict(value = "products", key = "#id")
public void delete(Long id) {
repository.deleteById(id);
}Tømme alt
Bruk allEntries = true for å tømme en hel cache på én gang.
@CacheEvict(value = "products", allEntries = true)
public void reloadAll() {
// bulk refresh
}Fjerne før eller etter
Som standard skjer tømmingen etter at metoden lykkes. Angi beforeInvocation = true for å tømme cachen selv om metoden kaster et unntak.
@CacheEvict(value = "products",
allEntries = true, beforeInvocation = true)
public void risky() { ... }Gruppere med @Caching
@Caching kombinerer flere cache-operasjoner på én metode.
@Caching(
put = @CachePut(value = "products", key = "#p.id"),
evict = @CacheEvict(value = "productList",
allEntries = true))
public Product save(Product p) {
return repository.save(p);
}Konfigurasjon på klassenivå
@CacheConfig angir et standardnavn for cachen til alle metoder i en klasse, slik at du unngår gjentakelser.
@Service
@CacheConfig(cacheNames = "products")
public class ProductService {
@Cacheable(key = "#id")
public Product findById(Long id) { ... }
}Forbehold ved selvkall
Cache-annotasjoner fungerer via proxyer, så en metode som kaller en annen cachelagret metode i samme klasse, omgår cachen. Kall via en separat bean.
Rask sjekk
Test forståelsen Deres av cache-annotasjonene.
Oppsummering
De har lært de tre cache-annotasjonene:
@Cacheable— lagre og bruk resultater på nytt@CachePut— kjør alltid og oppdater@CacheEvict— fjern oppføringer (allEntries,beforeInvocation)- Vær oppmerksom på proxy-forbeholdet ved selvkall
Lær deg Java med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 24
- Leksjoner
- 93
Ofte stilte spørsmål
Er leksjonen «@Cacheable, @CachePut, @CacheEvict» gratis?
Ja – hele teksten i «@Cacheable, @CachePut, @CacheEvict» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Spring Boot 4-mikrotjenester og REST API-er-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Spring Boot 4-mikrotjenester og REST API-er inneholder totalt 4 leksjoner.
Hva lærer jeg i «@Cacheable, @CachePut, @CacheEvict»?
Styr bufreadferden nøyaktig. Du øver på Spring Boot 4-mikrotjenester og REST API-er med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Spring Boot 4-mikrotjenester og REST API-er?
Ingen tidligere erfaring er nødvendig. Spring Boot 4-mikrotjenester og REST API-er på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «@Cacheable, @CachePut, @CacheEvict»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Spring Boot 4-mikrotjenester og REST API-er-leksjonen?
Ja. Alle Spring Boot 4-mikrotjenester og REST API-er-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Spring Cache-abstraksjonen
- @Cacheable, @CachePut, @CacheEvict
- Redis som cache-leverandør
- Cache-TTL og ugyldiggjøring