【发布时间】:2016-08-19 23:28:22
【问题描述】:
所以,
我正在尝试将我们现有的缓存 (ehcache) 转换为 ignite 缓存,并迁移到 spring 注释。我在使注释与我们现有的缓存一样工作时遇到了一些困难 - 每当我们缓存新类的某些内容时,我们现有的缓存都会自动创建,并且新缓存与对象的类具有相同的名称。
所有当前的缓存逻辑(以及大多数正常的 CRUD 操作逻辑)都在一个抽象类中,该类扩展了我们所有的持久对象。但是,在研究 spring 注释时,似乎我需要在方法上定义缓存名称 - 这显然不适用于抽象类,除非我希望我们所有的对象都在同一个缓存中(可能但绝对不是理想的)。理想情况下,我会将缓存名称指定为“#this.class.toString”,但缓存名称中不允许使用 SPEL,就像它在键中一样。
似乎动态解析缓存的唯一方法是创建自己的缓存解析器,但由于某种原因,IgniteCache 没有扩展 springframework 缓存,而是 javax 缓存,并且缓存解析器必须返回前者。所以我什至不清楚 Ignite 缓存是如何与 spring 注释一起工作的?
这对我来说似乎是一个非常简单的用例,所以当我假设大多数任何重要规模的应用程序都在抽象它们的持久性方法时,spring 注释强迫我在方法上提供一个显式名称似乎很奇怪,并且我觉得我一定错过了一些重要的文档,但我肯定找不到。有没有办法在具体实现上指定缓存的名称,但在抽象方法上保留缓存注解?
谢谢!
【问题讨论】:
-
你是否在 EhCache 中使用了 Spring 注解?如果是,它是如何工作的?如果不是,首先使用它们的原因是什么?为什么不直接使用 Ignite API?
标签: spring spring-cache ignite