Ehcache ist ein reines Java-In-Prozess-Caching-Framework mit schnellen und schlanken Funktionen und standardmäßig CacheProvider in Hibernate.
EHCACHE bietet eine Vielzahl von Caching -Strategien, die hauptsächlich in Speicher- und Festplattenniveaus unterteilt sind. Daher müssen sich keine Sorgen um Kapazitätsprobleme machen.
Spring-Boot ist ein schnelles Integrationsrahmen, mit dem der anfängliche Konstruktions- und Entwicklungsprozess neuer Spring-Anwendungen vereinfacht wird. Das Framework verwendet eine spezifische Möglichkeit, es zu konfigurieren, damit Entwickler keine Kesselplattenkonfigurationen mehr definieren müssen.
Da für Spring-Boot keine Boilerplate-Konfigurationsdateien erforderlich sind, unterscheidet sich Spring-Boot bei der Integration einiger anderer Frameworks geringfügig.
1.Spring-Boot ist ein Rahmen für JAR-Pakete, die über Maven verwaltet werden. Die für die Integration erforderlichen Abhängigkeiten sind wie folgt wie folgt
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId></dependency><dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> <version>2.8.3</version></dependency>
Die spezifische POM.xml -Datei lautet wie folgt
<? xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.lclc.boot</groupId> <artifactId>boot-cache</artifactId> <version> 0.0.1-Snapshot </Version> <!-Erben Standardeinstellungen aus Spring Boot-> <Stopper <gruppe> org.springFramework.boot </GroupId> <artifactID> Spring-Boot-Starter-Parent </artifactId> <version> 1.1.3. <gruppeId> org.springFramework.boot </GroupId> <artifactId> Spring-Boot-Starter-Web </artifactId> </abhängig> <abhängigkeit> <gruppe> org.springFramework <gruppeId> org.springframework.boot </GroupId> <artifactId> Spring-Boot-Starter-Thymeleaf </artifactId> </abhängig> <depectIncy> <Groupid> Mysql </Groupid> <artifactId> Mysql-connector-Java </artifactid> </abhängig> </abhängig> </abhängig> </abhängig> </artifactId <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>17.0</version> </dependency> <dependency> <groupId>org.sspringframework</groupId> <artifactId>spring-context-support</artifactId> </dependency> <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> <version>2.8.3</version> </dependency> </dependencies> <dependencyManagement> <dependencies> </dependencies> </dependencies> </dependencies> </dependencies> </dependencies> </dependencies> </dependencies> <build> <plugins> <SupructId> org.springFramework.boot </GroupId> <artifactID> Spring-Boot-Maven-Plugin </artifactId> </plugin> </plugins> </build> <repositories> <Prepository> <id> Spring-Snapshots </id> <url> http://repo.sping.io/snapshoti// <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>spring-milestones</id> <url>http://repo.spring.io/milestone</url> </repository> </repository> </repository> <pluginRepository> <pluginRepository> <ID> Spring-Snapshots </id> <URL> http://repo.spring.io/snapshot </url> </pluginRepository> <pluginRepository> <id> Spring-milestones </id> <url> http://repo.sspring.io. </pluginRepositories> </project>
2. Mit EHCache benötigen wir EHCache.xml, um einige Cache -Attribute zu definieren.
<? <diskStore path = "java.io.tmpdir /tmp_ehcache" /> <defaultCache eternal = "False" MaxelementSinMemory = "1000" ÜberlaufeTodisk = "false" diskPersistent = "false" memeetoidleseconds = "0" -Inalives -Löwen -Löwen- name = "Demo" eternal = "false" maxelementSinMemory = "100" overflowtodisk = "false" diskPersistent = "False" TimetoidleSeconds = "0" TimetoliveSeconds = "300" MemorySevictionPolicy = "lRU" /> < /ähcache>
Erläutern Sie die Tags in dieser XML -Datei.
(1) .DiskStore: Ist der Cache -Pfad, EHCache ist in zwei Ebenen unterteilt: Speicher und Festplatte. Diese Eigenschaft definiert den Cache -Ort der Festplatte. Die Parameter werden wie folgt erklärt:
(2) .DefaultCache: Die Standard -Cache -Richtlinie. Wenn EHCache den definierten Cache nicht finden kann, wird diese Cache -Richtlinie verwendet. Nur einer kann definiert werden.
(3) .Cache: benutzerdefinierte Cache -Richtlinie, eine benutzerdefinierte Cache -Richtlinie. Die Parameter werden wie folgt erklärt:
Springboot unterstützt viele Caching -Methoden: Redis, Guava, Ehcahe, JCache usw.
Erklären Sie den Unterschied zwischen Redis und EHCache:
Redis: Es ist ein unabhängiges laufendes Programm. Allein nach der Installation wird es mit Jedis in Java manipuliert. Da es unabhängig ist, wenn Sie ein Unit -Testprogramm schreiben, einige Daten in Redis einfügen und dann ein anderes Programm schreiben, um die Daten zu erhalten, können Sie die Daten abrufen. Anwesend
Ehcache: Es unterscheidet sich offensichtlich von Redis, es ist an Java -Programme gebunden. Wenn das Java -Programm lebt, lebt es. Wenn Sie beispielsweise ein unabhängiges Programm zum Einlegen von Daten schreiben und dann ein unabhängiges Programm zum Erhalten von Daten schreiben, erhalten Sie keine Daten. Daten können nur in unabhängigen Programmen erhalten werden.
3. Setzen Sie den EHCACHE -Manager dem Spring Context Container aus.
@Configuration // Die Annotation startet die cache @enableCachingPublic -Klasse CacheConfiguration {/** EHCACHE Hauptmanager*/ @bean (name = "appehcacheCacheManager") public ehcacheCacheManager EhcacheCacheManager (ehcachemanagern: } / * * Nach dem gemeinsam genutzten oder nicht, erstellt Spring eine EHCACHE -Basis über CacheManager.create () bzw. neue CacheManager () -Methoden. */ @Bean public EhCACHEMANAGERFACTORYBEAN EHCACHEMANAGERFACTORYBEAN () {EHCACHEMANATERFACTORTORYBEAN CACHEMANATERFACTORTORYBEAN = NEW EHCACHEMANATEFACTORTORYBEAN (); CACHEMANAGERFACTORYBEAN.SETCONFIGLOCATION (New ClassPathresource ("conf/ehcache-app.xml")); CacheManagerFactoryBean.Setshared (wahr); Rückkehr CacheManagerFactoryBean; }}@Configuration: Annotiert für Spring-Boot, hauptsächlich als Konfigurationsklasse kommentiert, und dem Scannen wird Priorität gegeben.
@Bean: Bohne in den Frühlingsbehälter hinzufügen.
Alle Konfigurationen werden bisher durchgeführt, und das Integrieren des Frameworks durch Spring-Boot ist so einfach.
4. Verwenden Sie EHCache
Die Verwendung von EHCache erfolgt hauptsächlich durch den Feder -Cache -Mechanismus. Wir haben den Feder -Cache -Mechanismus mit EHCache implementiert, sodass wir den Feder -Cache -Mechanismus vollständig in Bezug auf die Verwendung verwenden können.
Einige Notizen sind beteiligt:
@Cacheable: Verantwortlich für das Hinzufügen des Rückgabewerts der Methode zum Cache, Parameter 3
@Cacheevict: verantwortlich für das Löschen von Cache, Parameter 4
Parameter Erläuterung:
Laden Sie ohne weiteres den Code hoch:
@ServicePublic Class CacheDemoServiceImpl implementiert CacheDemoService {/** * Cache -Schlüssel */public static Final String ting_all_key = "/" Thing_All/""; /*** Das Wertattribut gibt an, welche Cache -Richtlinie verwendet werden soll. Die Cache -Richtlinie ist in ehcache.xml */ public static Final String Demo_Cache_Name = "Demo"; @Cacheevict (value = Demo_Cache_Name, Key = tingen_all_key) @Override public void create (Thing Thing) {Long id = getNextId (); ting.setid (id); Data.put (id, Sache); } @Cacheable (value = Demo_cache_name, Key = "#Thing.getId () + 'Thing'") @Override öffentliche Dinge findById (Long id) {System.err.println ("no cache!" + Id); return data.get (id); } @Cacheable (value = Demo_Cache_Name, Key = tingen_all_key) @Override publiclist <ing> findall () {return lists.newarrayList (data.Values ()); } @Override @cacheput (value = Demo_Cache_Name, Key = "#Thing.getId ()+'Thing'") @cacheevict (value = Demo_Cache_Name, Key = Thing_All_Key) public Was Update (Thing Thing) {System.out.println (Thing); Data.put (Thing.getId (), Sache); Rückkehrsding; } @Cacheevict (value = Demo_Cache_Name) @Override public void delete (Long id) {data.remove (id); }}5. Sie müssen nur die Service -Layer -Methode über Annotationen kommentieren und den Cache verwenden, den Cache auf Find ** speichern und den Cache auf Löschen ** und aktualisieren ** löschen.
Detaillierte Erläuterung von Cache -Anmerkungen
@CacheConfig: Es wird hauptsächlich verwendet, um einige gemeinsame Cache -Konfigurationen zu konfigurieren, die in dieser Klasse verwendet werden. Hier @CacheConfig (Cachenesnames = "Benutzer"): Der im Datenzugriffsobjekt zurückgegebene Inhalt ist so konfiguriert, dass sie im Cache -Objekt benannt werden. Wir können es auch direkt über den eigenen Namen des Cache -Sets von @cacheable definieren, ohne diese Annotation zu verwenden.
@Cacheable: Der Rückgabewert der konfigurierten FindByName -Funktion wird dem Cache hinzugefügt. Gleichzeitig wird es beim Abfragen zunächst aus dem Cache erhalten, und wenn es nicht vorhanden ist, wird der Zugriff auf die Datenbank initiiert. Diese Annotation hat hauptsächlich die folgenden Parameter:
Zusätzlich zu den beiden hier verwendeten Anmerkungen gibt es auch die folgenden Kernanmerkungen:
@Cacheput: Auf einer Funktion konfiguriert, kann es gemäß den Parametern zwischengespeichert werden und definiert die Bedingungen. Im Gegensatz zu @cacheable wird die Funktion jedes Mal wirklich aufgerufen und wird hauptsächlich für Datenabschluss- und Änderungsvorgänge verwendet. Die Parameter sind @cacheable ähnlich. Für bestimmte Funktionen finden Sie in der oben genannten Analyse der @cacheable Parameter.
@Cacheevict: Konfiguriert auf Funktionen, die normalerweise in Löschmethoden verwendet werden, um entsprechende Daten aus dem Cache zu entfernen. Zusätzlich zu den gleichen Parametern wie @cacheable enthält es die folgenden zwei Parameter:
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.