Eine EhCache-Instanz mit Spring ... intelligent abrufen

8

Ich muss eine bestimmte EhCache-Instanz anhand des Namens erhalten und würde es vorziehen, wenn möglich zu autowire. Wie kann ich den folgenden automatisch konfigurierten Controller in der Cache-Instanz, die ich suche, automatisch ansteuern?

%Vor% %Vor%

Wie konfiguriere ich EhCache in meinem Anwendungskontext? Ich sehe keine Protokollnachrichten von EhCache über das Laden der ehcache.xml-Datei in mein /WEB-INF/ -Verzeichnis. Wie kann ich es laden?

Wie kann ich EhCache in meine Spring-Anwendung integrieren, damit die ehcache.xml -Datei von meinem /WEB-INF/ -Verzeichnis geladen und ein Cache mit einem bestimmten Namen in meinen MyUniqueService -Controller übertragen wird?

    
Naftuli Kay 13.07.2012, 00:40
quelle

4 Antworten

16

Zuerst müssen Sie einen Ehcache CacheManager Singleton in Ihrem App Kontext wie folgt erstellen:

%Vor%

Hier ist configLocation so eingestellt, dass es vom Klassenpfad geladen wird oder value="/WEB-INF/my-ehcache.xml" verwendet.

In Ihrem Controller injizieren Sie einfach die CacheManager -Instanz:

%Vor%

Alternativ können Sie, wenn Sie die Route "vollständig automatisch" verwenden möchten:

%Vor%

Richten Sie Ihre Klasse wie folgt ein:

%Vor%

uniqueObjectCache entspricht dieser Cache-Instanz in Ihrer ehcache.xml -Cache-Definition:

%Vor%

Es gibt keine Möglichkeit, eine tatsächliche Cache-Instanz zu injizieren, aber wie oben gezeigt, können Sie einen Cache-Manager injizieren und ihn verwenden, um den Cache zu erhalten, an dem Sie interessiert sind.

    
jeha 13.07.2012, 11:36
quelle
16

Angenommen, Sie haben cacheManager definiert:

%Vor%

Sie können spezifischen Cache wie folgt erhalten / injizieren:

%Vor%

Siehe auch Beispiele zur Verwendung von Spring EL im @Value() Ссылка wenn Sie interessiert sind.

    
petrsyn 05.02.2014 11:18
quelle
9

Sie können auch autowire verwenden, wenn der Kontext eine Bean mit der richtigen Klasse finden kann. Hier ist, wie ich meine XML konfiguriert habe

%Vor%

Und meine Java-Klasse

%Vor%

Diese Einstellung funktioniert für mich.

    
Bryant Larsen 17.12.2012 21:16
quelle
7

Tatsächlich! Oder wenn Sie eine Java-Config-Klasse verwenden möchten:

%Vor%     
Vincent Devillers 13.07.2012 13:00
quelle

Tags und Links