You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot二级缓存所需依赖及不同配置方案差异问询

你贴的两套依赖分别对应Spring通用缓存、Hibernate二级缓存两种完全独立的实现方案,所以依赖配置差异很大,两个疑问分别解答如下:

为什么第一个示例要单独引入缓存API?Hibernate不是自带缓存能力吗?

第一个示例实现的是Spring提供的通用缓存抽象能力,和Hibernate的缓存没有关系:

  • Spring Cache是业务层的通用缓存方案,可以给任意业务方法做返回值缓存,不局限于ORM查询场景,它本身只提供注解抽象,需要对接具体的缓存实现,同时兼容JCache(JSR-107)Java官方缓存规范。
  • 示例中引入的javax.cache:cache-api就是JSR-107的规范接口包,用到的Ehcache 3.x是这套规范的实现之一,所以必须配套引入接口包才能正常使用。
  • Hibernate自带的是持久层专属的二级缓存,只能作用于Hibernate的实体查询、操作场景,和Spring通用缓存是完全独立的两套能力,适用场景完全不重叠。如果你只需要做业务层通用缓存,完全不需要用到Hibernate的缓存能力。

为什么第二个示例不需要引入spring-boot-starter-cache?

第二个示例实现的是Hibernate原生的二级缓存,完全不需要用到Spring的缓存抽象能力:

  • hibernate-ehcache是Hibernate官方提供的二级缓存适配包,本身已经传递引入了所需的Ehcache相关依赖,不需要额外引入其他缓存包。
  • 这套方案只依赖Hibernate自身的能力,只要配置好Hibernate的缓存相关参数就能直接使用,和Spring Boot的缓存starter没有任何依赖关系,自然不需要引入。

内容的提问来源于stack exchange,提问作者user16722881

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 17:09:05