Использование Spring 3.2 с EhCache 2.9. Я аннотированный метод нулевого параметра следующим образом:Spring @Cacheable не кэширование
@Cacheable(value="myList", key="#result.method.name")
protected List<MyObject> getMyList() {
//db query
//return list of results
}
Ehcache конфигурации:
<cache name="myList"
statistics="true"
maxEntriesLocalHeap="1"
timeToLiveSeconds="3600">
<persistence strategy="none" />
</cache>
я хотел бы результаты базы данных для кэширования. Поскольку этот метод не имеет параметров, я выбрал имя метода как ключ кэш.
Когда я проверяю это, база данных попадает во все вызовы метода, и я не уверен, почему. Есть идеи?
UPDATE
Таким образом, после устранения неполадок, я нашел кое-что интересное. В настоящее время метод getMyList
(по которому определяется кеширование) находится в том же классе, который его вызывает. Этот метод в основном вызывает DAO для запроса списка. Если я перемещаю getMyList
на другой класс, который просто действует как прокси-сервер, а затем меняю исходный invoker для вызова этого нового прокси вместо этого, тогда работает кеширование. Я не могу объяснить, почему. Любой вход?
спасибо Рубену. Ты просто сделал мой день - боролся с этим. Аналогия зоопарка идеальна! – Tarun