Как использовать 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 нестатичным, применяя какой-то одноэлементный шаблон? Или я должен получить доступ к кешу другим способом? Пример кода наверняка поможет!