Välimuistin Kanssa Työskentelyn Annotaatiot
Sen sijaan, että käsittelisit välimuistia manuaalisesti, voit käyttää annotaatioita, jotka hallinnoivat prosessia automaattisesti. Tarkastellaan käytettävissä olevia annotaatioita.
Tulosten välimuistiin tallentaminen
@Cacheable annotaatio lisätään metodeihin, joiden tulokset tulee tallentaa välimuistiin. Kun metodia kutsutaan uudelleen samoilla parametreilla, tulos haetaan välimuistista.
@Cacheable(value = "usersCache", key = "#userId")
public User getUserById(String userId) {
return userRepository.findById(userId);
}
Tässä esimerkissä getUserById metodi tallentaa käyttäjäkyselyn tuloksen heidän ID:nsä perusteella välimuistiin nimeltä "usersCache". Jos metodia kutsutaan uudelleen samalla userId:llä, data haetaan välimuistista sen sijaan, että suoritettaisiin kysely tietokantaan.
Välimuistin päivittäminen
@CachePut annotaatio päivittää välimuistin aina, kun metodi suoritetaan, riippumatta siitä, oliko tulos välimuistissa aiemmin.
@CachePut(value = "usersCache", key = "#user.id")
public User updateUser(User user) {
return userRepository.save(user);
}
@CachePut -annotaatiota käytetään välimuistin päivittämiseen aina, kun updateUser metodia kutsutaan. Tämä on hyödyllistä, kun data muuttuu ja välimuisti täytyy synkronoida tietokannan muutosten kanssa. Välimuisti päivitetään avaimella, joka vastaa käyttäjän ID:tä.
Välimuistin tyhjentäminen
@CacheEvict -annotaatiota käytetään datan poistamiseen välimuistista, esimerkiksi kun käyttäjä poistetaan tietokannasta.
@CacheEvict(value = "usersCache", key = "#userId")
public void deleteUser(String userId) {
userRepository.deleteById(userId);
}
Tässä esimerkissä deleteUser metodi poistaa välimuistista merkinnän, jonka avain on yhtä kuin userId.
Yhdistetyt välimuistioperaatiot
@Caching annotaatio mahdollistaa useiden välimuistioperaatioiden suorittamisen yhdessä metodissa, yhdistäen @CachePut ja @CacheEvict.
@Caching(
put = { @CachePut(value = "usersCache", key = "#user.id") },
evict = { @CacheEvict(value = "usersCache", key = "#user.id") }
)
public User updateUser(User user) {
return userRepository.save(user);
}
Tässä esimerkissä updateUser-metodi päivittää samanaikaisesti välimuistin käyttäjän uudella tilalla käyttäen @CachePut-annotaatiota ja poistaa vanhan merkinnän välimuistista käyttäen @CacheEvict-annotaatiota. Tämä on hyödyllistä, kun täytyy suorittaa useita välimuistioperaatioita samanaikaisesti.
1. Milloin käytetään @CacheEvict-annotaatiota?
2. Mikä on @CachePut-annotaation tarkoitus?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Mahtavaa!
Completion arvosana parantunut arvoon 3.33
Välimuistin Kanssa Työskentelyn Annotaatiot
Pyyhkäise näyttääksesi valikon
Sen sijaan, että käsittelisit välimuistia manuaalisesti, voit käyttää annotaatioita, jotka hallinnoivat prosessia automaattisesti. Tarkastellaan käytettävissä olevia annotaatioita.
Tulosten välimuistiin tallentaminen
@Cacheable annotaatio lisätään metodeihin, joiden tulokset tulee tallentaa välimuistiin. Kun metodia kutsutaan uudelleen samoilla parametreilla, tulos haetaan välimuistista.
@Cacheable(value = "usersCache", key = "#userId")
public User getUserById(String userId) {
return userRepository.findById(userId);
}
Tässä esimerkissä getUserById metodi tallentaa käyttäjäkyselyn tuloksen heidän ID:nsä perusteella välimuistiin nimeltä "usersCache". Jos metodia kutsutaan uudelleen samalla userId:llä, data haetaan välimuistista sen sijaan, että suoritettaisiin kysely tietokantaan.
Välimuistin päivittäminen
@CachePut annotaatio päivittää välimuistin aina, kun metodi suoritetaan, riippumatta siitä, oliko tulos välimuistissa aiemmin.
@CachePut(value = "usersCache", key = "#user.id")
public User updateUser(User user) {
return userRepository.save(user);
}
@CachePut -annotaatiota käytetään välimuistin päivittämiseen aina, kun updateUser metodia kutsutaan. Tämä on hyödyllistä, kun data muuttuu ja välimuisti täytyy synkronoida tietokannan muutosten kanssa. Välimuisti päivitetään avaimella, joka vastaa käyttäjän ID:tä.
Välimuistin tyhjentäminen
@CacheEvict -annotaatiota käytetään datan poistamiseen välimuistista, esimerkiksi kun käyttäjä poistetaan tietokannasta.
@CacheEvict(value = "usersCache", key = "#userId")
public void deleteUser(String userId) {
userRepository.deleteById(userId);
}
Tässä esimerkissä deleteUser metodi poistaa välimuistista merkinnän, jonka avain on yhtä kuin userId.
Yhdistetyt välimuistioperaatiot
@Caching annotaatio mahdollistaa useiden välimuistioperaatioiden suorittamisen yhdessä metodissa, yhdistäen @CachePut ja @CacheEvict.
@Caching(
put = { @CachePut(value = "usersCache", key = "#user.id") },
evict = { @CacheEvict(value = "usersCache", key = "#user.id") }
)
public User updateUser(User user) {
return userRepository.save(user);
}
Tässä esimerkissä updateUser-metodi päivittää samanaikaisesti välimuistin käyttäjän uudella tilalla käyttäen @CachePut-annotaatiota ja poistaa vanhan merkinnän välimuistista käyttäen @CacheEvict-annotaatiota. Tämä on hyödyllistä, kun täytyy suorittaa useita välimuistioperaatioita samanaikaisesti.
1. Milloin käytetään @CacheEvict-annotaatiota?
2. Mikä on @CachePut-annotaation tarkoitus?
Kiitos palautteestasi!