ehcache с JRuby Rails

Я пытаюсь настроить ehcache с помощью JRuby Rails. Хранение Java-объекта в ehcache работает нормально, но получение его доставляет мне некоторые проблемы. Если я отслеживаю объект, который возвращает мне ehcache, я получаю это:

[ key = mipsObject, value=ProxyBridge@116fe10, version=1, hitCount=1, 
  CreationTime = 1330679995356, LastAccessTime = 1330679995357 ]

Теперь, как я могу получить доступ к значению?

Я не совсем уверен, является ли это трассируемым объектом Java или объектом Ruby...

Код:

def store_object (obj) EHCACHE.put ("obj", obj) конец

def get_object EHCACHE.get("obj") # дает мне вышеуказанный объект. Должен только вернуть свое значение end

1 ответ

Решение

Метод Ehcache.get возвращает объект Ehcache Element, который содержит значение, а также некоторые метаданные. Если вы хотите получить фактическое значение, у вас есть два варианта.

Один из них заключается в том, что вы можете вызвать метод getValue() для объекта Element, возвращаемого Ehcache.get(). JRuby позволяет вам вызывать этот метод как просто "значение", если вы предпочитаете:

EHCACHE.get("obj").value

Во-вторых, вместо использования метода Ehcache.get () вы можете использовать нотацию доступа к массиву, чтобы получить значение напрямую. Это немного магии Ruby, которую мы добавили в Ehcache API в привязках JRuby:

EHCACHE["obj"]   # returns the value directly

Надеюсь, это поможет.

Вы можете прочитать мой блог для получения дополнительной информации об использовании Ehcache с JRuby: http://jvoegele.blogspot.com/2010/11/ehcache-for-jruby-and-rails-now-with.html

Другие вопросы по тегам