Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät · Oppitunti

@Cacheable, @CachePut, @CacheEvict

Hallin­noikaa välimuistin toimintaa täsmällisesti.

Oppitunti 2/413 vaihetta

@Cacheable, @CachePut, @CacheEvict on ilmainen Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssilla on yhteensä 4 oppituntia.

Kolme välimuistiannotaatiota

Spring tarjoaa kolme metoditason välimuistiannotaatiota:

  • @Cacheable – lue välimuistista ja tallenna tulos
  • @CachePut – suorita aina ja päivitä välimuisti
  • @CacheEvict – poista tietueita

@Cacheable

@Cacheable tarkistaa ensin välimuistin; jos arvoa ei löydy, se suorittaa metodin ja tallentaa tuloksen.

@Cacheable("products")
public Product findById(Long id) {
    return repository.findById(id).orElseThrow();
}

Ehdollinen välimuisti

Käyttäkää condition-ehtoa välimuistiin tallentamiseen vain predikaatin täyttyessä ja unless-ehtoa tiettyjen tulosten ohittamiseen.

@Cacheable(value = "products",
    unless = "#result == null")
public Product findById(Long id) { ... }

@CachePut

@CachePut suorittaa metodin aina ja tallentaa palautetun arvon – se sopii erityisesti päivitysmetodeihin, joiden tulee päivittää välimuisti.

@CachePut(value = "products", key = "#product.id")
public Product update(Product product) {
    return repository.save(product);
}

@Cacheable ja @CachePut

@Cacheable voi ohittaa metodin osuman yhteydessä, mutta @CachePut ei koskaan ohita sitä. Älkää käyttäkö molempia samassa metodissa, sillä niiden toimintatavat ovat ristiriidassa.

@CacheEvict

@CacheEvict poistaa tietueen, yleensä välimuistissa olevan datan mitätöivän poiston tai päivityksen jälkeen.

@CacheEvict(value = "products", key = "#id")
public void delete(Long id) {
    repository.deleteById(id);
}

Kaiken poistaminen välimuistista

Käyttäkää allEntries = true tyhjentääksenne koko välimuistin kerralla.

@CacheEvict(value = "products", allEntries = true)
public void reloadAll() {
    // bulk refresh
}

Poistaminen ennen kutsua tai sen jälkeen

Oletusarvoisesti poisto tapahtuu sen jälkeen, kun metodi onnistuu. Asettakaa beforeInvocation = true, jos haluatte poistaa merkinnän, vaikka metodi heittäisi poikkeuksen.

@CacheEvict(value = "products",
    allEntries = true, beforeInvocation = true)
public void risky() { ... }

Ryhmittely @Caching-annotaatiolla

@Caching yhdistää useita välimuistitoimintoja samaan metodiin.

@Caching(
    put = @CachePut(value = "products", key = "#p.id"),
    evict = @CacheEvict(value = "productList",
        allEntries = true))
public Product save(Product p) {
    return repository.save(p);
}

Luokkatasoinen määritys

@CacheConfig määrittää oletusvälimuistin nimen kaikille luokan metodeille, mikä vähentää toistoa.

@Service
@CacheConfig(cacheNames = "products")
public class ProductService {
    @Cacheable(key = "#id")
    public Product findById(Long id) { ... }
}

Itsekutsun rajoitus

Välimuistiannotaatiot toimivat välityspalvelinten kautta, joten metodi, joka kutsuu toista välimuistia käyttävää metodia samassa luokassa, ohittaa välimuistin. Kutsukaa metodia erillisen bean-komponentin kautta.

Pikatesti

Testatkaa, miten hyvin ymmärrätte välimuistiannotaatiot.

Kertaus

Opitte kolme välimuistiannotaatiota:

  • @Cacheable — tallentaa ja käyttää tuloksia uudelleen
  • @CachePut — suorittaa aina ja päivittää tuloksen
  • @CacheEvict — poistaa merkintöjä (allEntries, beforeInvocation)
  • Huomioikaa itsekutsuun liittyvä välityspalvelimen rajoitus
Aloita maksutta

Opi Java tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
24
Oppitunnit
93

Usein kysytyt kysymykset

Onko oppitunti ”@Cacheable, @CachePut, @CacheEvict” ilmainen?

Kyllä – oppitunnin ”@Cacheable, @CachePut, @CacheEvict” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssin, päivitä CoddyKit PROhon. Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”@Cacheable, @CachePut, @CacheEvict”?

Hallin­noikaa välimuistin toimintaa täsmällisesti. Harjoittelet Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”@Cacheable, @CachePut, @CacheEvict”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunnilla?

Kyllä. Jokainen Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Springin Cache-abstraktio
  2. @Cacheable, @CachePut, @CacheEvict
  3. Redis välimuistipalveluna
  4. Välimuistin TTL ja mitätöinti
← Takaisin: Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät