Frühlings -Cache -Konzept
Ab Spring 3.1 wird eine transparente Möglichkeit zum Hinzufügen von Cache zu vorhandenen Federanwendungen bereitgestellt, die wie @Transaction verwendet werden. Es gibt eine Abstraktionsebene zwischen Anwendungsebene und Backend -Speicher. Diese Abstraktionsebene ist so konzipiert, dass verschiedene Steckbackend -Speicher (EHCACHE GUAVA REDIS) zusammengefasst werden, um den durch Cache in die vorhandenen Geschäftsordnung verursachten Eindringung zu minimieren.
Die Caching -Technologie von Spring hat auch erhebliche Flexibilität. Es kann nicht nur SPEL (Spring Expression Language) verwenden, um Cache-Tasten und verschiedene Bedingungen zu definieren, sondern bietet auch temporäre Speicherlösungen aus dem Box Cache und unterstützt auch die Integration in professionelle Mainstream-Caches wie EHCACHE.
Seine Eigenschaften werden wie folgt zusammengefasst:
Designkonzept
Genau wie andere Dienste des Spring -Frameworks liefert Spring Cache zuerst eine Abstraktionsebene, und die Kernabstraktion spiegelt sich hauptsächlich in den beiden Schnittstellen wider.
org.springframework.cache.cache
org.springframework.cache.CacheManager
Cache steht für Cache selbst
CacheManager repräsentiert die Verarbeitung und Verwaltung von Caches usw. Die Bedeutung der Abstraktion besteht darin, die Unterschiede in den Implementierungsdetails zu blockieren und Skalierbarkeit zu bieten. Diese Schicht der Cache-Abstraktion entkoppelt die Verwendung von Cache und den Back-End-Speicher von Cache, so dass der Back-End-Speicher in Zukunft problemlos ersetzt werden kann.
Verwenden von Federcache in drei Schritten:
Cache deklarieren
@Cacheable ("Bücher") Public Book Findbook (ISBN ISBN) {...} Die Verwendung ist sehr einfach. Fügen Sie der Methode @cacheable und andere Anmerkungen hinzu, um das Ergebnis der Methode zu zwischenstrahlen.
Wenn eine Methode aufgerufen wird, prüfen Sie zunächst, ob der gleiche Parameter im Cache für die Methode aufgerufen wird. Wenn ja, fragen Sie vom Cache ab und geben Sie das Ergebnis zurück. Wenn nicht, führen Sie die spezifische Methodenlogik aus und speichern Sie das Ergebnis zum Cache. Natürlich ist diese Logikserie für den Anrufer transparent. Die Notizen für andere Cache -Operationen sind wie folgt (siehe offizielle Dokumentation für Einzelheiten):
Schalten Sie den Frühlingscache -Unterstützung ein
<Cache: Annotationsgetrieben />
Oder verwenden Sie die Annotation @EnableCaching -Methode
Konfigurieren Sie den Cache -Backend -Speicher
Spring Cache bietet mehrere integrierte Backend-Speicherimplementierungen: Im Folgenden sind die spezifischen Implementierungen von CacheManager aufgeführt.
Darüber hinaus bieten Federdaten zwei Cache -Manager:
Wenn Sie verteilte Caches wie Memcached oder Redis verwenden, können Sie Cache und CacheManager selbst implementieren und im Kontext deklarieren. Wenn mehrere verschiedene Cache -Implementierungen erforderlich sind, können verschiedene Cachemanagers in einem Kombinationsmodus zusammengekapselt werden.
Wie wird der zwischengespeicherte Schlüssel generiert?
Wir alle wissen, dass die Speichermethode des Cache im Allgemeinen der Schlüsselwert ist. Wie ist der Schlüsselsatz im Frühlings -Cache? Hier müssen wir Keygenerator vorstellen, was für die Schlüsselgenerierungsstrategie verantwortlich ist, und die Standardeinstellung besteht darin, SimpleKeyGenerator zu verwenden
Es ist ersichtlich, dass es sich um den Hash -Wert des geordneten Parameterarrays handelt. Natürlich können Benutzer die Strategie der Schlüsselgenerierung anpassen.
Implementierung von Frühlingscache
Das obige ist die allgemeine Verwendung von Spring -Cache, die zeigt, wie der Frühling implementiert wird.
Beim Erlernen des Frühlingsquellencodes gibt es zwei Dinge, die Sie sich erinnern müssen:
Denken Sie an diese und es ist einfacher, den Implementierung und den Laufzeitmechanismus einiger Komponenten im Frühjahr zu verstehen.
Frühlingscache ist keine Ausnahme. Es ist eine typische Feder -AOP -Implementierung. Im Frühjahr kann AOP einfach als Proxy (außer Aspektj) verstanden werden. Wir erklären, dass die Klasse der @cacheable -Methode proxyiert wird, und im Proxy werden zwischengespeicherte Abfragen und Einstellungsvorgänge implementiert.
Schaffung der Cache -Infrastruktur
Der vorherige Artikel (Überblick über das Frühlings -AOP -Modul) sprach über die Tatsache, dass der Erstellungsprozess von Frühlings -AOP im Wesentlichen darin besteht, einen BeanPostProcessor zu implementieren, einen Proxy zu erstellen, um eine Bohne zu erstellen, und alle Berater für die Bean für den Proxy zu binden und letztendlich dem Container auszusetzen.
Mehrere Schlüsselkonzepte des AOP -Meisters im Spring Advisor Reating Pointcut
Ratschläge = Verhalten der Einfügung in das Abfangen der Abschnitte
Pointcut = Pointcut zum Abschnitt
Advisor = Ratschläge + Pointcut
Spring -Cache hat auch ähnliche Prozesse wie andere AOPs
Erstellen Sie einen Cache -Proxy
Cache's Intercept Line
Das in Spring Cache generierte Cache -Proxy -Objekt verwendet die CacheProxyfactoryBean Factory -Klasse. Im Allgemeinen basiert die Schaffung von Standard -Proxy im Frühjahr auf Proxyfaktorik. Um die Cache-Logik bequemer zu verarbeiten, führt Spring CacheProxyFactoryBean ein, um den Cache-bezogenen Proxy spezifisch darzustellen. Cache -Proxy kann Singleton -Zielobjekte und Proxy alle von den Zielobjekten implementierten Schnittstellen einwickeln.
Wie Sie sehen können, ist eine wichtige Eigenschaft in der CacheProxyFactoryBean CacheInterceptor. Diese Klasse ist eine Implementierungsklasse von MethodInteceTor. Die Verantwortung dieser Klasse besteht darin, spezifische Cache -Operationen für die Zielobjektziel -Methode auszuführen, die in der Verantwortung der oben genannten Ratschläge liegt.
Folgen Sie weiter, die Ausführungsmethode der Rückgabe ist die Methode in der übergeordneten Klasse CachaSpectSupport
In dieser Methode finden wir endlich die endgültige Logik des Operation -Cache
Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Referenzwert für das Studium oder die Arbeit eines jeden hat. Wenn Sie Fragen haben, können Sie eine Nachricht zur Kommunikation überlassen. Vielen Dank für Ihre Unterstützung bei Wulin.com.