【问题标题】:What's difference between hibernate caching and Spring framework cache?hibernate缓存和Spring框架缓存有什么区别?
【发布时间】:2015-03-11 15:05:45
【问题描述】:

我有一个从数据库获取数据的应用程序(使用休眠)。 我想每天一次用数据库状态加载缓存(每个用户),然后改用缓存。

我正在使用带有 Hibernate 的 Spring 框架,并且我知道它们都有一些缓存的可能性。

它们之间有什么区别?什么是更好的选择?

【问题讨论】:

    标签: java spring hibernate spring-mvc caching


    【解决方案1】:

    在我看来,从 Hibernate 缓存开始是一个更谨慎的决定,尤其是因为两者并不相互排斥。在性能方面 Spring 缓存可以为您提供更多,它在堆栈中更高,您可以缓存业务结果(基本上比使用 hibernate 的二级缓存更多)。

    然而,一个显着的区别是清除缓存。使用 Spring 缓存,您需要显式清除,而如果您的插入、更新和删除通过 hibernate 的框架,则会自动维护 hibernate 缓存。

    在我参与的项目的上下文中,假设使用 hibernate 的二级缓存,几乎是默认值。我们将 Spring 缓存用于本质上更加静态的数据。

    【讨论】:

      【解决方案2】:

      Hibernate 有 2 级缓存。 1. First level 2. Second level

      Second level chache 用于整个应用程序,first level cache 用于当前休眠会话。每个用户都有no cache

      另外,如果您使用的是 spring 托管 bean + 缓存。您可以为整个应用程序而不是用户缓存 bean。 (对此有点不确定)

      听起来您想将数据存储在user's session 中。即,只要用户正在进行活动会话。 Spring 有一个session scoped beans,您可能希望使用它们来缓存每个用户的数据。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-15
        • 2011-04-11
        • 2016-11-24
        • 2015-12-16
        • 2021-04-28
        • 2020-08-27
        • 2010-10-01
        • 2011-05-14
        相关资源
        最近更新 更多