Как использовать play.cache.CacheApi в статическом методе в Play! Framework 2.4.2

У меня есть приложение Play Framework, которое я перенес для запуска на Play Framework 2.4.2. Он предоставляет RESTful API для веб-интерфейса javascript / html. Теперь у меня есть некоторые проблемы с введением кэширования.

LibraryController (преобразование JSON / HTTP-запроса в JSON / HTTP-ответ):

public class LibraryController extends Controller {

  public Result getBook(String isbn) {
      Book book = LibraryManager.getBook(isbn);
      BookDto bookDto = DtoMapper.book2BookDtos(book);
      return ok(Json.toJson(bookDto));
  }
}

LibraryManager (преобразование запроса модели домена в ответ модели домена):

public class LibraryManager {

@Inject CacheApi cache;

public static Book getBook(String isbn) {

    Book book = cache.get(isbn);
    // ...
}

У меня проблема в том, что я получаю

non-static variable cache cannot be referenced from a static context

Способ, которым я внедряю кеш согласноPlay 2.4.2 Cache API документация, У меня не было этой проблемы, когда я использовал кеширование согласноPlay 2.2.x Cache API документация, В этой версии был статический метод, который я мог вызвать.

Что я должен делать? Должен ли я сделать getBook нестатичным, применяя какой-то одноэлементный шаблон? Или я должен получить доступ к кешу другим способом? Пример кода наверняка поможет!

Ответы на вопрос(2)

Ваш ответ на вопрос