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