Получение структуры 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 здесь.