java - 在 Spring 应用程序中维护状态?

标签 java spring session javabeans state

只是寻找一些有关在 Spring 应用程序中维护某些内容的状态的理论。

例如,想象一下作为网络应用程序运行的扑克游戏。有很多事情需要考虑。例如维护玩家一手牌中的筹码数量、参与一手牌的人、每个玩家的牌值以及共享的公共(public)牌。下注金额、底池总额等。

其他需要考虑的事情是玩家在被弃牌之前必须采取行动的时间分配。

无论执行游戏循环的逻辑如何,使用 spring 跟踪一手扑克以及完整的扑克游戏状态的最佳方法是什么。

提前致谢。

最佳答案

与跟踪网络应用程序中的任何数据的方式相同;编写一个 DAO 接口(interface),然后创建一个实现。例如;

public class PokerHand {
  //just a POJO
}

public interface PokerHandDAO {
  public PokerHand getPokerHand(long id);
  public void updatePokerHand(PokerHand hand);
}

public class InMenoryPokerHandDAO implements PokerHandDAO {
  private static Map<Long,PokerHand> hands = new HashMap<Long,PokerHand>();

  @Override
  public PokerHand getPokerHand(long id) {
    return hands.get(id);
  }

  @Override
  public void updatePokerHand(PokerHand hand) {
    hands.put(hand.getId(), hand);
  }
}

每当玩家采取更改操作时,他们都会向网络应用程序发出请求。您将必须跟踪几件事的状态,并且显然您将不得不担心玩家之间的状态同步。

关于java - 在 Spring 应用程序中维护状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6610605/

相关文章:

java - 拦截对数据库的查询

Java:如何让 File.listOfFiles 在 Linux 上非递归工作?

java - 创建名称为 '_filterChainProxy' : Initialization of bean failed; nested exception is java. lang.NullPointerException 的 bean 时出错

spring - 在OSGi bundle 中访问Spring上下文

java - Spring MVC 中的文件上传给出 NullPointerException

PHP session ID——它们是如何生成的?

session - BigQuery 中的 VisitorID 与 Google Analytics session 不匹配

java - 无状态 bean 的行为类似于有状态 session bean - 为什么?

java - 值(value)比较让我困惑,无法正常工作

java - Java Web 应用程序数据访问类中的线程安全