【问题标题】:Spring Boot - Avoid getting the same DAO multiple timesSpring Boot - 避免多次获取相同的 DAO
【发布时间】:2020-07-30 19:28:43
【问题描述】:

在编写复杂的 Web 应用程序时,我们意识到我们经常在 API 调用期间获得相同的 DAO。这可能是因为应用程序具有多个层。我们希望避免在一个请求期间多次从数据库中获取相同的实体。唯一可以使用的解决方案是线程上下文。我们可以从数据库中缓存已经请求的实体,并且当系统第二次请求相同的实体时,它将从线程上下文而不是数据库中返回。这可能有效,但我们都知道这可能不是最佳选择,而应用程序可能有后台线程,而这种缓存不是一个好的做法。

(如果这很重要,我们将使用 MongoDB)

如果您知道此问题的任何其他解决方案,请告诉我:)

【问题讨论】:

    标签: mongodb spring-boot data-access-layer


    【解决方案1】:

    您需要从数据访问层进行某种缓存,也许是缓存模式 - 为此目的,我一直是 using ehcache。这为您提供了一个经过实战考验、可配置的库,而无需使用 ThreadLocal 等。

    This thread is a similar problem statement 到您的帖子 - 看看那里的一些答案。

    【讨论】:

      【解决方案2】:

      考虑使用@Cachable 表示法,或者使用默认缓存,或者您可以实现spring 支持的多种缓存解决方案中的任何一种。

      https://docs.spring.io/spring/docs/4.1.x/spring-framework-reference/html/cache.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-06-14
        • 2022-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-09
        相关资源
        最近更新 更多