java - JCache 的 Spymemcached 的完全限定名称

标签 java spring caching memcached

我们正在尝试以这样的方式实现 JCache,以便我们可以轻松地交换任何符合 JSR-107 的缓存提供程序。我们使用 Spring,我们的 CachingProvider Bean 如下所示:

@Bean
public CachingProvider cachingProvider() {
    CachingProvider cachingProvider = Caching.getCachingProvider(env.getProperty("jcache.provider.fullyQualifiedName"));
    return cachingProvider;
}

这允许我们通过在属性文件中添加完全限定名称以及将 jar 添加到类路径来交换我们想要的任何兼容缓存。目前,为了实现 Hazelcast,我们的配置文件如下所示:

jcache.provider.fullyQualifiedName=com.hazelcast.cache.HazelcastCachingProvider

但是,我想为此实现spymemcached,但我无法找到它的完全限定名称(或任何其他符合 JSR-107 的实现)。

所以我的问题是有人知道 Spymemchaced 或任何其他符合 JSR-107 的缓存提供程序的完全限定名称吗?我用谷歌搜索了又搜索,但还是找不到任何结果。

最佳答案

如果您想通过添加不同的 jar 来切换缓存提供程序,最好的答案是:就这么做吧!您不需要为此进行任何额外配置。

您只能使用Caching.getCachingProvider()。这将返回您添加到应用程序(位于类路径中)的 JSR107 兼容缓存提供程序。其内部使用的是服务提供者接口(interface)机制,参见:https://docs.oracle.com/javase/tutorial/sound/SPI-intro.html

当您想要同时在一个应用程序中使用不同的缓存提供程序时,情况会变得更加复杂。您可以查看 jar 文件中的 spi 文件,正如 Ben 在评论中建议的那样,或者您可以通过 Caching.getCachingProviders() 迭代它们。要获取完全限定名称,请使用 getClass().getName() 打印类名称。

关于java - JCache 的 Spymemcached 的完全限定名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34951932/

相关文章:

java - 通过 JMX 连接时,Tomcat 中的 JNDI 上下文初始化失败

java - 使用 CaesarCipherBreaker 拆分字符串

配置服务器上的 spring-cloud-starter-bus-kafka 设置

java - 当我在非事务中使用事务bean时,Spring会建立与数据库的连接吗?

java - 来自 Java webapp 的版本控制资源文件

caching - GORM(纹理)-缓存Blob图片或其他内容

java - 单击按钮 android eclipse 后出现空白页?

java - 如何使用 ElGamal 加密/解密文本文件

java - spring-security 错误登录的用户

c++ - 当前的 x86 架构是否支持非临时加载(来自 "normal"内存)?