Получение структуры Java Play для кэширования объектов Ebean с использованием memcached
Я запускаю Java Play framework версии v2.6.1 и используя Ebean для сохранения. Я намерен получить bean кэширование, используя play2-memcached.
Что я сделал до сих пор?
- установлен
memcached
на локальном хосте и включен ведомый журнал.
- заменила
ehcache
зависимость с cacheApi
в libraryDependencies
в build.sbt
(это, я полагаю, должно полностью удалить Ehcache).
- добавлен
"com.github.mumoshu" %% "play2-memcached-play26" % "0.9.0",
в libraryDependencies
в build.sbt
- добавлен
"Spy Repository" at "http://files.couchbase.com/maven2",
в resolvers
в build.sbt
- добавлены следующие записи в приложение conf:
play.modules.disabled += "play.api.cache.ehcache.EhCacheModule"
play.modules.enabled+="com.github.mumoshu.play2.memcached.MemcachedModule"
play.cache.defaultCache=default
play.cache.bindCaches=["db-cache", "user-cache", "session-cache"]
memcached.host="127.0.0.1:11211"
- взял мою сущность и сделал ее реализацию
Serializable
, также добавил аннотацию @com.avaje.ebean.annotation.Cache
.
- включено ведение журнала SQL
Что работает?
- Загрузка объекта с помощью
Entity.find.byId(id)
результатов SQL SELECT
. Загрузка его снова с разными результатами запроса не содержит операторов SQL.
- открытие браузера на localhost: 11211 показывает ошибки в syslog - это значит, что memcached запущен, и я вижу, как появляются запросы
- создание дампа памяти. Я вижу, что загружаются классы, связанные с кешем из
com.github.mumoshu
.
Что не работает?
- Я ожидаю, что кешированные объекты будут отправлены в memcached (при чтении и/или обновлении). Этого не происходит - нет связанных с этим журналов memcached. Никаких подключений к порту 11211, если я запустил
netstat -na | grep 11211
.
Есть ли что-нибудь, чего я не вижу?
Ответы
Ответ 1
Вам также необходимо привязать javax.caching.CacheManager
.
Добавить
libraryDependencies += jcache
на ваш build.sbt
.
Если вы используете Guice, вам также нужно добавить следующие примечания Java:
libraryDependencies += "org.jsr107.ri" % "cache-annotations-ri-guice" % "1.0.0"
Более подробную информацию можно найти в разделе "Поддержка JCache" в документации по Playframework здесь.