Попробуйте следующее, создайте свой собственный шаблон адаптера с помощью Cache API:
package caching
import javax.inject._
import play.api.Configuration
import play.api.cache.AsyncCacheApi
import scala.concurrent.duration.Duration
@Singleton
class ConfigCache @Inject()(config: Configuration, cache: AsyncCacheApi) {
def set(name: String, obj: Any) = {
cache.set(name, obj, config.get[Duration]("my.play.duration"))
}
}
Теперь, когда у вас есть класс ConfigCache
, вы можете ввести его там, где это необходимо ...
package controllers
import javax.inject._
import play.api._
import play.api.mvc._
import services.Counter
import caching.ConfigCache
import models.Account
@Singleton
class SomeController @Inject() (configCache: ConfigCache, cc: ControllerComponents)(implicit executionContext: ExecutionContext) extends AbstractController(cc) {
def myAction = Action {
configCache.set("my.item", Account(1, "bob@stackoverflow.com",
"Bob", "Bobberson", "pass"))
Ok("Yay")
}
}
Попробуйте.Не точный кодЯ просто собрал код без проверки.Я бы сказал, не используйте слово «кеш» в качестве пакета, поскольку я думаю, что это зарезервированное имя пакета.Дайте нам знать, как это происходит и каков ваш окончательный ответ.;)