Jakarta ee java在不同应用程序中共享数据,对数据库的点击率最低

Jakarta ee java在不同应用程序中共享数据,对数据库的点击率最低,jakarta-ee,ejb,jboss7.x,ear,data-sharing,Jakarta Ee,Ejb,Jboss7.x,Ear,Data Sharing,我有一些功能,我需要使用数据库中的数据,对数据库的点击率最低。 这些数据不经常更改,所以我在加载应用程序时使用静态ConcurrentHashMap加载其中的数据, 当在数据库中添加/更改新数据时,该数据将在相应的Hashmap中添加/更新 现在这很好,因为只有一场战争,所以分享很简单 但是现在有3场不同的战争和一个Ejb在单个Ear下,它们都需要并发地共享数据 所以我需要某种方法将这些数据保存在某个地方,所有WAR和Ejb都可以在不受干扰的情况下访问它们 我正在使用带有maven的JSPSer

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

现在这很好,因为只有一场战争,所以分享很简单

但是现在有3场不同的战争和一个Ejb在单个Ear下,它们都需要并发地共享数据

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

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


请向我推荐实现此功能的最佳方法。

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

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

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