JCache(JSR 107)是用于缓存的Java标准…足够了。 没有更多介绍性的东西。
这是一则速成文章,内容涉及
- 多个JCache提供程序配置,以及
- 功能:通过JMX Mbeans的JCache统计信息
管理多个JCache提供程序
如果您只使用一个JCache提供程序,则javax.jcache.Caching.getCachingProvider()返回您的类路径上唯一一个CachingProvider的实例。
如果您的应用程序类路径上有多个JCache实现,则尝试使用上述代码片段引导JCache提供程序会遇到以下异常(非常友好!)。
javax.cache.CacheException: Multiple CachingProviders have been configured when only a single CachingProvider is expected
超负荷救援!
getCachingProvider方法有很多重载版本,其中一种允许您指定特定JCache provider实现的完全限定的类名。 确切的类名将作为JCache供应商文档的一部分提供,例如com.tangosol.coherence.jcache.CoherenceBasedCachingProvider和com.hazelcast.cache.HazelcastCachingProvider分别是Oracle Coherence和Hazelcast的提供程序类。
这样就可以了:
CachingProvider coherenceJCacheProvider = Caching.getCachingProvider(“com.tangosol.coherence.jcache.CoherenceBasedCachingProvider”).getCacheManager()
您也可以从JCache提供程序JAR文件的META-INF / services / javax.cache.spi.CachingProvider中获取相同内容。
JMX统计
JCache免费提供配置和运行时性能统计信息! 这是由提供程序特定的实现驱动的。
- javax.cache.management.CacheMXBean –确保通过在JCache MutableConfiguration对象上调用setManagementEnabled(true)启用此功能
- javax.cache.management.CacheStatisticsMXBean –确保通过在JCache MutableConfiguration对象上调用setStatisticsEnabled(true)来启用此功能
示例片段
MutableConfiguration config = new MutableConfiguration().setManagementEnabled(true).setStatisticsEnabled(true);
从JConsole或任何等效客户端内省Mbean
不错哈?
干杯! :-)
翻译自: https://www.javacodegeeks.com/2015/08/random-jcache-stuff-multiple-providers-and-jmx-beans.html