14

我试图让 Ehcache 3 在不使用 Spring 启动的情况下与 Spring 4 一起工作。

这是一个使用 Spring Boot 的工作示例,但我正在开发一个不使用 Spring Boot 的现有应用程序。

问题是 spring-context-support (它添加了 Spring 的缓存注释)期望 Ehcache 的 CacheManager 在这个类路径上:net.sf.ehcache.CacheManager

但是,在 Ehcache 3 中,CacheManager 类驻留在另一个类路径中:org.ehcache.CacheManager。

因此,基本上 spring-context-support 不支持 Ehcache 3。您必须直接使用 JSR-107 注释,而不是 Spring 提供的注释。

但显然它适用于 Spring Boot。也许有一种方法可以让它与标准的 Spring 应用程序一起工作。这就是我所希望的。我真的很想使用 Spring 自己的注释而不是 JSR-107 注释。

4

2 回答 2

15

实际上,Spring Caching 中没有对 Ehcache 3 的原生支持。

好消息是,由于 Ehcache 3 是兼容的 JCache 实现,因此您可以通过 Spring Caching 的JCache 支持实现您想要的。一旦您在应用程序上下文中获得了可用的 JCache,就不会强迫您使用 JCache 注释。您可以继续使用 Spring Caching 没有任何问题。CacheManager

你可以在这里找到一个演示。

注意:我正在研究 Ehcache

于 2016-09-09T08:16:18.557 回答
4

这是从 ehcache 2 到 3 的所有需要​​更改的简单且有效的示例:https ://imhoratiu.wordpress.com/2017/01/26/spring-4-with-ehcache-3-how-to/

这是新配置的链接:

于 2017-11-29T21:39:28.913 回答