Auch wollte hinzufügen, dass Sie die Cache-Spezifikation direkt im Cache-Manager verwenden können, wenn Sie nicht an verschiedenen Cache-Builder für verschiedene Caches interessiert sind.
Sie müssen nicht bei der Initialisierung des Cache-Managers jeden Cache nach Namen angeben. Jede neue Anforderung für einen Cache erstellt einen Cache basierend auf dem bereitgestellten CacheBuilder oder in diesem Fall mit der angegebenen Cache-Spezifikation entsprechenden CacheBuilder).
Sie sind Spring-XML endet extrem elegant zu sein:
<bean id="cacheManager" class="org.springframework.cache.guava.GuavaCacheManager">
<property name="cacheSpecification" value="maximumSize=300000,expireAfterWrite=10h" />
</bean>
Auch Hinweis: vergessen Sie nicht, Frühling, Ihnen zu sagen Caching verwenden, werden durch so etwas wie dies in Ihrer Anwendung Config xml einschließlich:
<cache:annotation-driven/>
, die Sie natürlich benötigen definieren:
xmlns:cache="http://www.springframework.org/schema/cache"
xsi:schemaLocation="http://www.springframework.org/schema/cache classpath:org/springframework/cache/config/spring-cache-4.2.xsd"
Wenn Sie nicht tun etwas so einfaches und Sie möchten mehrere CacheBuilder für verschiedene Anwendungsfälle haben, dann werden Sie wahrscheinlich Ihre eigene Factory-Klasse und Methode erstellen möchten.
Danke - ich habe es über FactoryBean laufen! – kuriouscoder
@kuerycoder könnten Sie Ihren Schnipsel teilen, ich bin im selben Boot, danke! –
Wenn Sie die Java-Konfiguration bevorzugen, gibt es ein vollständiges Beispiel zu dieser Frage: http://stackoverflow.com/questions/8181768/can-i-set-a-tl-for-cacheable/31926759#31926759 – anataliocs