Inoltre, si desidera aggiungere che è possibile utilizzare la specifica della cache direttamente in Cache Manager se non si è interessati a diversi Cache Builder per cache differenti.
Non è necessario specificare ogni cache per nome durante l'inizializzazione di Cache Manager, ogni nuova richiesta per una cache ne crea una basata sul CacheBuilder fornito, o in questo caso con la specifica cache fornita (che si traduce in un corrispondente CacheBuilder).
Sei Primavera XML finisce per essere estremamente elegante:
<bean id="cacheManager" class="org.springframework.cache.guava.GuavaCacheManager">
<property name="cacheSpecification" value="maximumSize=300000,expireAfterWrite=10h" />
</bean>
anche notare: non dimenticate di dire la primavera si sta utilizzando la cache includendo qualcosa di simile nella vostra applicazione di configurazione XML:
<cache:annotation-driven/>
Quale sarà necessario ovviamente definire:
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"
Se non stai facendo qualcosa di semplice come questo e tu vuoi avere più CacheBuilder per diversi casi d'uso, probabilmente vorrai creare il tuo Factory Class e Method.
Grazie - L'ho eseguito tramite FactoryBean! – kuriouscoder
@kuriouscoder potresti condividere il tuo frammento, io sono nella stessa barca, grazie! –
Se si preferisce utilizzare la configurazione Java, esiste un esempio completo su questa domanda: http://stackoverflow.com/questions/8181768/can-i-set-a-ttl-for-cacheable/31926759#31926759 – anataliocs