Это может быть немного не по теме, так как в этом решении используется весна:
Вы можете использовать ehcache-spring-annotations для выполнения кэширования без кода.
По сути, вы бы определили кеш в ehcache.xml:
<ehcache>
...
<cache
name="htmlCache"
maxElementsInMemory="10"
eternal="true"
overflowToDisk="false" />
</ehcache>
Настройте использование аннотаций кеша в контексте приложения Spring:
<ehcache:annotation-driven />
<ehcache:config cache-manager="cacheManager"/>
<bean
id="cacheManager"
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="classpath:ehcache.xml"/>
</bean>
И комментируйте ваш код для автоматического кэширования:
@Cacheable(cacheName = "htmlCache")
public String getHtml(String url) {
...
}
Это затем кеширует результаты метода getHtml
на основе его параметра (url
), поэтому при повторном вызове метода с тем же url
результаты будут поступать прямо из кеша .