【问题标题】:ehcache with JRuby Railsehcache 与 JRuby Rails
【发布时间】:2012-03-03 01:23:26
【问题描述】:

我正在尝试使用 JRuby Rails 设置 ehcache。在 ehcache 中存储 Java 对象可以正常工作,但检索它会给我带来一些麻烦。如果我追踪 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") #给我上面的对象。它应该只返回它的值 结束

【问题讨论】:

    标签: ruby-on-rails jruby ehcache


    【解决方案1】:

    Ehcache.get 方法返回一个包含值以及一些元数据的 Ehcache 元素对象。如果您想获得实际值,您有两种选择。

    一种是你可以在 Ehcache.get() 返回的 Element 对象上调用 getValue() 方法。如果您愿意,JRuby 允许您将此方法称为简单的“值”:

    EHCACHE.get("obj").value
    

    其次,可以不使用 Ehcache.get() 方法,而是使用数组访问表示法直接获取值。这是我们在 JRuby 绑定中添加到 Ehcache API 中的一点 Ruby 魔法:

    EHCACHE["obj"]   # returns the value directly
    

    希望对您有所帮助。

    您可以阅读我的博客文章以了解有关将 Ehcache 与 JRuby 结合使用的更多信息: http://jvoegele.blogspot.com/2010/11/ehcache-for-jruby-and-rails-now-with.html

    【讨论】:

    • 谢谢 Jason,我马上阅读你的博客。同时,我可以使用 EHCACHE 作为会话存储吗?也就是说,如果我在 EHCACHE 中添加一些东西,是添加在应用程序的范围内还是当前会话的范围内?
    • 很棒的博客。可惜昨天没找到。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    相关资源
    最近更新 更多