0

我有一些功能,我需要使用数据库中的数据,对数据库的命中率最低。此数据不会经常更改,因此我在加载应用程序时使用静态 ConcurrentHashMap 在其中加载数据,并且当在数据库中添加/更改新数据时,将在相应的 Hashmap 中添加/更新该数据。

现在这工作正常,因为只有一场战争,所以分享很简单。

但是现在单耳下有3种不同的战争和1个Ejb,它们都需要同时共享数据。

所以我需要一些方法将这些数据保存在某个地方,所有战争和 Ejb 都可以在不干扰的情况下访问它们。

我正在使用带有 maven 的 JSP-Servlet 应用程序,使用的服务器是 Jboss-7.1.1.Final。

请建议我完成这项工作的最佳方法。

4

1 回答 1

0

您可以使用 Singleton 或 ApplicationScope 组件来保存您的缓存,并让它由您的 WAR 中的每个应用程序注入。

或者,您可以围绕您的缓存构建一个 REST 服务,并由每个应用程序使用它。

但是,我仍然建议不要尝试构建自己的缓存。您可以使用标准 JPA,仍然在开始时加载所有记录,然后让 JPA 实现为您进行缓存 - 不会有很多数据库命中不会更改的数据。

于 2014-06-13T13:40:49.140 回答