是否可以拥有一个使用带有 a 的 DAOConcurrentHashMap
来存储数据的 REST Web 服务(Spring 和 Jersey),或者我应该避免它并使用某种内存数据库?
这是一个示例应用程序,所以我不介意每次应用程序停止时都会丢失数据。
是否可以拥有一个使用带有 a 的 DAOConcurrentHashMap
来存储数据的 REST Web 服务(Spring 和 Jersey),或者我应该避免它并使用某种内存数据库?
这是一个示例应用程序,所以我不介意每次应用程序停止时都会丢失数据。
如果您几乎只需要创建、读取、更新和删除实体,ConcurrentHashMap 就很好。我实际上在 Jetty 中运行的应用程序中使用 ConcurrentHashMap 并模拟我们的应用程序集成的某些系统。
但是,正如 Soitorios Delimanolis 和 omickron 所提到的,如果您需要依赖涉及多个数据库操作的事务的原子性,事情就会变得棘手。
为了保护自己免受这种情况的影响,我为我的 DAO 定义了接口并编写了 ConcurrentHashMap 支持的实现。如果时间到了,这还不够,我可以用基于 HSQLDB 或 SQLite 的实现来替换该实现。
您可以使用 ConcurrentHashMap,但在以下情况下会遇到一些困难:
ConcurrentHashMap 用于其他目的。所以,我建议使用任何内存数据库。