Koffein- und Springstiefel -Integration
Koffein ist eine umgeschriebene Version von Guava -Cache mit Java 8, die Guave in Spring Boot 2.0 ersetzt. Wenn Koffein erscheint, wird CaffeineCacheManager automatisch konfiguriert. Verwenden Sie die Eigenschaft spring.cache.cache-names, um Caches beim Start zu erstellen, und kann mit der folgenden Konfiguration angepasst werden (in der Reihenfolge):
Beispielsweise erstellt die folgende Konfiguration einen Foo- und Balken -Cache mit einer maximalen Anzahl von 500 und einer Überlebenszeit von 10 Minuten:
spring.cache.cache-names = foo, barspring.cache.caffein.spec = maximalSize = 500, expirabaChess = 600s
Wenn com.github.benmanes.caffein.cache.cacheloader definiert ist, wird außerdem automatisch mit dem CaffeineCachemanager verbunden. Da der Cacheloader alle vom Cache -Manager verwalteten Caches assoziiert, muss er als Cacheloader <Objekt, Objekt> definiert werden, und die automatische Konfiguration ignoriert alle generischen Typen.
Abhängigkeiten einführen
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId></dependency><dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine</artifactId> <version>2.6.0</version></dependency>
Aktivieren Sie den Cache -Support
Verwenden Sie die @enableCaching -Annotation, um den Cache -Support zu aktivieren
@SpringBootApplication@EnableCaching // Cache aktivieren, die angegebene öffentliche Klasse SpringbootStudentCacheCaffeineApplication {public static void main (String [] args) {SpringApplication.run (SpringbootstudentcachecaffeineApplication.class, args); }}Konfigurationsdatei
Spezielle Konfigurationen für Cache hinzugefügt, wie z. B. maximale Kapazität, Ablaufzeit usw.
Spring.cache.cache-names = PeopleSpring.cache.caffein.spec = initialCapacity = 50, maximalSize = 500, ExpirestterWrite = 10s, RefreshafterWrite = 5s
Wenn eine RefreshafterWrite -Konfiguration verwendet wird, muss auch ein Cacheloader angegeben werden, wie z. B.:
/** * Diese Bean muss angegeben werden, und die Konfigurationseigenschaft von RefreshafterWrite = 5S wirkt sich aus. } // Schreiben Sie diese Methode neu und senden Sie den alten Wert zurück und aktualisieren Sie den Cache @Override öffentliche Objekt Reload (Objektschlüssel, Objekt OldValue) Ausnahme {oldValue zurückgeben; }}; Cacheloader zurückgeben;}Koffeinkonfigurationsanweisungen:
Beachten:
Beispielcode
/** * @Author yuhao.wang */ @servicePublic class pensonserviceImpl implementiert personSservice {private static Final Logger logger = loggerfactory.getLogger (personSserviceImpl.class); @Autowired PersonRepository PersonRepository; @Override @cacheput (value = "people", key = "#person.id") öffentliche Person retten (Person) {Person p = PersonRepository.save (Person); logger.info ("ist id, Schlüssel:" + p.getId () + "Daten zwischengespeichert"); Rückkehr p; } @Override @cacheevict (value = "people") // 2 public void remove (long id) {logger.info ("Datencache mit ID entfernen, Schlüssel" + id + ""); // Der tatsächliche Löschvorgang wird hier nicht durchgeführt. * Schlüssel: Cache -Schlüsselsuffix. * SYNC: Setzen Sie, wenn der Cache abläuft, müssen nur eine Anfrage zur Anfrage der Datenbank gestellt werden, und andere Anforderungen sind blockiert und der Standard ist falsch. */ @Override @cacheable (value = "people", key = "#person.id", sync = true) public Person findOne (Person Person, Zeichenfolge A, String [] b, list <long> c) {Person p = PersonRepository.findone (person.getId ()); logger.info ("Für ID, Schlüssel:" + p.getId () + "Daten werden zwischengespeichert"); Rückkehr p; } @Override @cacheable (value = "people1") // 3 öffentliche Person findOne1 () {Person p = PersonRepository.findone (2L); logger.info ("Für ID, der Schlüssel ist:" + p.getId () + "Daten sind zwischengespeichert"); Rückkehr p; } @Override @cacheable (value = "people2") // 3 public Person findOne2 (Person) {Person p = PersonRepository.findone (person.getId ()); logger.info ("Für ID, der Schlüssel ist:" + p.getId () + "Daten sind zwischengespeichert"); Rückkehr p; }} Quellcode: https://github.com/wyh-sspring-ecosystem-stem-st/spring-boot-student/tree/releases
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.