使用带 Spring 注释的 ehcache 3(不使用 Spring 引导)

Using ehcache 3 with Spring Annotations (not using Spring Boot)

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

Here is a working example out there which uses Spring Boot,但我正在处理未使用 Spring Boot 的现有应用程序。

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

然而,在 Ehcache 3 中,CacheManager class 位于另一个 class 路径:org.ehcache.CacheManager.

所以,基本上spring-context-support不支持Ehcache 3。而且你必须直接使用JSR-107注解,而不是Spring提供的注解。

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

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

好消息是您可以通过 JCache support that Spring Caching has since Ehcache 3 is a compliant JCache implementation 实现您想要的。 一旦您的应用程序上下文中有可用的 JCache CacheManager,就不会强制您使用 JCache 注释。您可以毫无问题地继续使用 Spring 缓存。

您可以找到 here 的演示。

注意:我正在研究 Ehcache

这是一个简单的工作示例,用于从 ehcache 2 到 3 的所有需要​​的更改:https://imhoratiu.wordpress.com/2017/01/26/spring-4-with-ehcache-3-how-to/

这是 link 新配置: