使用spring和show in JSP从数据库加载数据一次,并且始终可用

使用spring和show in JSP从数据库加载数据一次,并且始终可用,spring,spring-mvc,jsp,Spring,Spring Mvc,Jsp,我希望立即从数据库加载下拉数据,并在java对象内部设置,并绑定到我的视图(JSP页面),并始终使用SpringMVC和JSP页面为特定的控制器或功能提供这些数据。 我不想在应用程序启动时加载,因为我们的应用程序很大,而且每个功能都是独立的。 如果在应用程序启动时加载,则启动应用程序会花费很多时间 有没有一种使用SpringMVC模式和JSP的方法 有人能告诉我怎么做吗这听起来像是典型的缓存功能 Spring支持在应用程序级别上通过@EnableCaching,在存储库方法上通过@Cacheab

我希望立即从数据库加载下拉数据,并在java对象内部设置,并绑定到我的视图(JSP页面),并始终使用SpringMVC和JSP页面为特定的控制器或功能提供这些数据。 我不想在应用程序启动时加载,因为我们的应用程序很大,而且每个功能都是独立的。 如果在应用程序启动时加载,则启动应用程序会花费很多时间 有没有一种使用SpringMVC模式和JSP的方法
有人能告诉我怎么做吗这听起来像是典型的缓存功能

Spring支持在应用程序级别上通过
@EnableCaching
,在存储库方法上通过
@Cacheable(“cachename”)
检索下拉数据。在您的简单用例中,您甚至不需要额外的框架,因为有一个基于
ConcurrentHashMap
CacheManager
,它可以永久缓存

有了缓存,控制器就可以简单地从存储库中获取下拉数据。缓存将确保只有第一个调用真正从数据库中提取,并将结果保留在内存中,以供所有后续调用使用


如果您需要更复杂的缓存,您只需交换缓存管理器并根据需要配置缓存。

因为您没有提到执行数据库操作的频率或获取数据的频率。考虑到普通用户

方法:创建自己的本地缓存/程序缓存实现。

  • 不要在启动期间从数据库中加载所有数据,而是只加载对所有人都通用的主数据。如果主数据也很高,那么可以执行延迟加载方法
  • 首次请求时加载特定功能的数据。将数据保留在本地缓存中
  • 每当有人进行更改时,将数据添加到缓存中,并将其保存到数据库中。因此,缓存中总是有最新的数据
优点:

  • 对于公共或静态主数据非常有用 -如果您需要一些通用数据的良好业务逻辑。只有在处理数据并保留缓存时,才可以使用这种方法。 -获取数据非常快,因为除了第一次,它不涉及数据库请求
缺点:

  • 如果用户数量非常多且更新操作非常频繁,则更新缓存将延迟更新过程,因为您需要按顺序更新它
我建议您可以使用多种方法来提高代码质量和处理