我们正在尝试以这样的方式实现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标准的缓存提供商的完全限定名称?我用谷歌搜索谷歌,但却无法想出任何东西。
答案 0 :(得分:2)
如果你想通过添加一个不同的jar来切换你的缓存提供者,最好的答案是:做吧!你不需要任何额外的配置。
您只能使用Caching.getCachingProvider()
。这将返回您添加到应用程序中的JSR107兼容缓存提供程序(即在类路径中)。在内部,它使用服务提供者接口机制,请参阅:https://docs.oracle.com/javase/tutorial/sound/SPI-intro.html
如果您希望在一个应用程序中同时使用不同的缓存提供程序,则会变得更加复杂。您可以在jar文件中查看spi文件,正如Ben在他的评论中所建议的那样,或者,您可以通过Caching.getCachingProviders()
进行迭代。要获取完全限定名称,请使用getClass().getName()
打印类名。