ehcache和ehcache-core之间的区别

2022-09-03 15:59:22

我是 Spring 框架中 ehcache v/s ehcache-core 的初学者,我的 pom.xml 使用的 ehcache 版本 1.5.0

<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>1.5.0</version>
</dependency>

现在,它将需要更新ehcache版本,因为它将在另一个jar中使用:- 更新的ehcache版本2.7.0但它返回错误net.sf.ehcache.Cache.getStatistics()方法未找到。

现在,我正在通过ehcache-core 2.5.7替换ehcache,因为:-

<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.5.7</version>
</dependency>

它是否破坏了其他功能,或者是否与ehcache相同?


答案 1

就像许多其他大型框架(如Spring)一样,ehcache被分成几个模块。其中一个模块是核心模块,其他模块是Web,server,jcache,debugger等等(参见 https://mvnrepository.com/artifact/org.ehcache.modules)。

有时,由于各种原因,您可能不希望将整个大型框架及其所有子架构包含在您的项目中。然后,您可以决定要使用的模块。

换句话说,使用pom将在项目中包含一个完整的库。使用将仅包括 中定义的功能。ehcacheehcache-coreehcache-core

您可以找出哪个模块包含您需要的功能并包含它,也可以使用完整的ehcache但使用适当的版本。


答案 2

在2.5.7版本中仍然有一个ehcache模块,但由于它只拉取依赖项,因此它是pom类型。其中一个依赖项是 。我的猜测是,你的功能不会仅仅满足于此。尝试ehcache-core

<dependency>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache</artifactId>
    <version>2.5.7</version>
    <type>pom</type>
</dependency>

推荐