2016-04-07 15 views
0

Ich entwickelte eine einfache Anwendung, um Feder-Cache-Abstraktion zu testen. Diese App verwendet den SimpleCacheManager zum Speichern von Daten in der Karte. Anruf geht von MVC-Controller zu Service zu Dao. Die Serviceklassenmethode ist mit @Cachle ("test") versehen und ist eine öffentliche Methode mit einem Argument vom Typ String und gibt einen String zurück. Jetzt müssen wir nur noch diese Werte durch ein Argument zwischenspeichern, das an diese Serviceklassenmethode übergeben wurde.feder simplecachemanager funktioniert nicht auf Methodenaufruf

Hier Cache Config

<cache:annotation-driven cache-manager="cacheManager" /> 
<bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager"> 
    <property name="caches"> 
     <set> 
      <bean 
       class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean" 
       name="test"/> 
     </set> 
    </property> 
</bean> 

Methode Anmerkung wie dieser Irgendwie

@Cacheable(value="test",key="#id") 
public String getProductName(final String id) { 

sieht es immer db Anruf. Was mache ich falsch?

Antwort

0

Ihr CacheName ist falsch. Sie

@Cacheable(value="test",key="#id") 
public String getProductName(final String id) { 

mit cachename „test“ schreiben, aber in der config Sie einen Cache mit dem Namen „Test“

+0

nicht Ja haben, fest ich diesen Namen Cache und arbeiten immer noch nicht – user509755

+0

siehst du in debug outbput, dass der CacheManager erstellt wird? – UKoehler

+0

Ja, ich sehe, dass es erstellt wird, sogar ich habe CacheManager in eine unserer Bean injiziert, um die Daten darin zu sehen. – user509755

Verwandte Themen