有什么方法可以找出最后一次在Java中访问String / Integer的时间吗?

时间:2017-04-10 07:25:01

标签: java string session timestamp pooling

我有一个存储在String中的sessionID,我想为它保留一个计时器,如果它空闲5分钟,我想关闭会话。 会话是在不同的jar中创建的,即第三方应用程序。哪个无法编辑。它只是将会话ID返回给我的Api。

我所能做的只是拥有会话ID。 我正在尝试汇集会话。我们正在使用Jre 1.7

如果,我无法获得上次访问的字符串的时间戳。然后我可以将该字符串存储在Map / List中并在上次访问时获取该字符串的时间戳吗?

请帮帮我。

3 个答案:

答案 0 :(得分:2)

您可以使用自己的班级会话解决此问题:

public class Session {
  private String sessionId;
  private long timestamp = System.currentTimeMillis() \ 1000;
  private long duration = 60 * 5;

  public Session(String sessionId) {
    this.sessionId = sessionId;
  }

  public boolean isOutOfTime() {
     if (this.timestamp + duration < System.currentTimeMillis() \ 1000) {
       return false;
     } else {
       return true;
     }
  }
}

答案 1 :(得分:1)

lastTimeAccess 的String类中没有此类属性/成员,

您的猜测是正确的,您需要定义/实施自定义。

Map<String,Long>  

你需要小心处理字符串对象中的不可变特性

答案 2 :(得分:1)

标准 java库中没有任何内容可以支持这一点;你必须建立自己的“Wrapper”课程;和缓存基础设施。并且不要误会:获得正确可以证明是高级任务!

因此,我会非常小心这样做你自己。这是一个高级主题,我的建议是:寻找已经为您做到这一点的现有框架,例如ehcachee

说真的:小心在这里重新发明轮子。