Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Spring 3.1 + ehcache 
V
    Опции темы
stallman
Дата 13.4.2011, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 2.10.2008

Репутация: нет
Всего: нет



Всем привет.

Хочется использовать кеширование в новом Spring 3.1

Собственно изучив http://blog.springsource.com/2011/02/23/sp...3-1-m1-caching/ сделал как описано, за исключение кеш-мененджера.
Прописал так:

cache-context.xml
Код

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:cache="http://www.springframework.org/schema/cache"
        xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/cache
            http://www.springframework.org/schema/cache/spring-cache.xsd">

    <cache:annotation-driven />

    <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"  p:cache-manager-ref="ehcache"/>
    <bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" p:config-location="ehcache.xml" />

</beans>



Однако поучил пинок от спринга в виде :

Код

javax.servlet.ServletException: Servlet.init() for servlet dispatcher threw exception
    ...

java.lang.IllegalStateException: Could not create MetadataReader for class org.springframework.cache.ehcache.EhcacheCacheManager
    ...

java.io.FileNotFoundException: class path resource [org/springframework/cache/ehcache/EhcacheCacheManager.class] cannot be opened because it does not exist
    ...


Насколько я понял - не найден ehcache manager, однако про его присутствие в 3.1 заявляет как спринг, так и ehcache

Где грабли ?
PM MAIL   Вверх
stallman
Дата 13.4.2011, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 2.10.2008

Репутация: нет
Всего: нет



блииин.... =)


EhcacheCacheManager.class --> EhCacheCacheManager.class
PM MAIL   Вверх
stallman
Дата 13.4.2011, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 2.10.2008

Репутация: нет
Всего: нет



Вроде заработало.

Но кешируемый метод все же не кешируется

Код

    @Cacheable("message")
    public String sampleCache(int id){
        LOG.info("--------------- call sampleCache() ");
        return "sample";
    }
     ....
     sampleCache(1);



Поидее при повторном вызове код метода вызываться не должен, но это происходит.

В конфигах ehcache не силен, посему остановился на

Код

<ehcache>
    <defaultCache />
    <cache name="message"/>
</ehcache>

PM MAIL   Вверх
stallman
Дата 13.4.2011, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 2.10.2008

Репутация: нет
Всего: нет



Заставляет задуматься вот эта строчка отсюда

Код

Note that just like other services in Spring Framework, the caching service is an abstraction (not a cache implementation)
and requires the use of an actual storage to store the cache data - that is, the abstraction frees the developer from having to
write the caching logic but does not provide the actual stores.


Добавлено через 2 минуты и 29 секунд
Следовательно возникает вопрос , что нужно имплементировать ?

Это сообщение отредактировал(а) stallman - 13.4.2011, 15:24
PM MAIL   Вверх
MisterCleric
Дата 13.4.2011, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 33
Всего: 38



Привет. А заодно читаем дальше:
Цитата

There are two integrations available out of the box, for JDK java.util.concurrent.ConcurrentMap and Ehcache

Это и имеется в виду как готовая имплементация Storage для кешируемых результатов.

Добавлено через 1 минуту и 13 секунд
Плюс. Важно заметить, что кеширование результатов выполнения методов строго зависит от параметров. Т.е. при смене значений параметров результат уже не будет браться из кеша


--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
stallman
Дата 13.4.2011, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 2.10.2008

Репутация: нет
Всего: нет



Цитата(MisterCleric @  13.4.2011,  16:18 Найти цитируемый пост)
Плюс. Важно заметить, что кеширование результатов выполнения методов строго зависит от параметров. Т.е. при смене значений параметров результат уже не будет браться из кеша 

Это понятно.

Вобщем я понял (источник) что кешированию подлежат только спринг-объекты.

Собственно косяк был в том, что я пытался кешировать произвольный метод произвольного класса, а этого делать нельзя.




Это сообщение отредактировал(а) stallman - 13.4.2011, 16:30
PM MAIL   Вверх
MisterCleric
Дата 13.4.2011, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 33
Всего: 38



Цитата

Вобщем я понял (источник) что кешированию подлежат только спринг-объекты.

Утверждение не верно: кешированию подлежат результаты выполнения методов Spring-бинов, а не сами бины.


--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0774 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.