我已经创建了一个Spring MVC Web应用程序。我的菜单是数据库,即它们存储在数据库中。每当我index.jsp从其他浏览器调用主页时,每次都会从数据库中检索菜单项。如何将菜单项存储在全局变量中,该变量可以在任何时间访问,而无需再次访问数据库或直到重新启动服务器。
index.jsp
您的需求可以通过两种方式满足:
服务器缓存: 使用某些开源服务器缓存库(例如ehcache),可将数据(您的应用程序数据或从数据库中检索到的数据或从某些第三方应用程序调用中接收到的数据)存储在服务器内存中。想法是, 与其执行预期会产生相同结果的相同第三方呼叫,不如执行一次然后将其存储在服务器缓存中 。 Ehcache在Spring框架中运行良好,实际上,我们将ehcache用于基于Spring框架的企业应用程序的服务器端缓存。
浏览器数据库存储: HTML5提供了IndexedDB API,可用于将数据存储在浏览器数据库中。 因此,您可以一次从服务器检索数据,然后将其存储在本地数据库中,然后每当需要数据时,都可以先检查数据是否存在于本地数据库中,如果不存在,则可以检索并存储在本地数据库中,否则从本地数据库 这种方法的优势在于, 您甚至可以节省服务器调用,从而减少网络流量 。
根据您的要求,可以选择一个选项。
我不建议将在数据库中检索到的数据存储在全局变量中。这实际上不是可扩展的方法。
您可以找到很多在线教程,但每种情况下建议1: