@Cacheable, @CachePut, @CacheEvict
Hallinnoikaa välimuistin toimintaa täsmällisesti.
@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
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”?
Hallinnoikaa 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
- Springin Cache-abstraktio
- @Cacheable, @CachePut, @CacheEvict
- Redis välimuistipalveluna
- Välimuistin TTL ja mitätöinti