首页 / 缓存 / 缓存提供者CachingProvider
缓存提供者CachingProvider
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了缓存提供者CachingProvider,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3666字,纯文字阅读大概需要6分钟。
内容图文
![缓存提供者CachingProvider](/upload/InfoBanner/zyjiaocheng/1275/5778a1df77a945b38c0cf5069f818261.jpg)
缓存提供者CachingProvider
缓存提供者是Java缓存API的一个核心概念,它的作用是通过一个CachingProvider,开发者获得CacheManager,并通过CacheManager和缓存交互。
通过CachingProvider可以:
●获取默认的CacheManager实例。
●通过唯一确定的URI为标识,创建CacheManager实例。
例如一个实现可能要求CacheManager声明一个类路径中指定的配置文件,据此允许实现通过路径装载资源。
cachingProvider.getCacheManager(“/sample/ConfigurationFile.xml”); |
●通过URI和ClassLoader的范围界定管理CacheManager实例。
●关闭和释放指定的CacheManager或相关CacheManager的集合。
●查询CachingProvider实现的功能,包括对可选功能的支持。
CacheManager的标识和配置
CacheManager在逻辑上由URI标识,被用来在一个CachingProvider的范围内创建这些CacheManager。而应用程序通常使用默认的URI作为定义的标识,并通过CachingProvider获取CacheManager,应用程序也可以使用特定的URI以支持CacheManagers的高级配置。
例如一个实现允许URI被用作定义配置文件的位置,通常用于预配置缓存。
cachingProvider.getCacheManager(“/sample/ConfigurationFile.xml”); |
应用程序部署中以相同URI定义的两个或两个以上的CacheManager,在逻辑上是等同的,在实现上可以管理相同的缓存。
例如支持分布式缓存拓扑结构的两个应用程序,使用相同URI可以在逻辑上共享同一缓存的名称和内容。在这种情况下,在一个应用程序中更改缓存条目可能对其他应用程序是可见的。
但与只支持本地缓存拓扑结构的两个应用程序,使用相同的URI可以使得它们使用同一个缓存名称,但不会共享缓存的内容。在这种情况下,一个应用程序中更改缓存条目对其他应用程序是不可见的。
下表概述了CacheManage的URI针对同一名称的使用如何影响到缓存,仅支持本地(非共享)对比分布式(或共享)的缓存拓扑。
CacheManager URI |
本地(非共享) 缓存拓扑 |
分布式/ 共享缓存拓扑 |
相同 |
缓存使用相同的配置。 |
缓存使用相同的配置。 |
不同 |
缓存可能拥有不同的配置。 可能拥有不同的条目。 |
缓存可能拥有不同的配置。 可能拥有不同的条目。 |
CachingProvider接口定义如下:
public interface CachingProvider extends Closeable { CacheManager getCacheManager(URI uri, ClassLoader classLoader, Properties properties); ClassLoader getDefaultClassLoader(); URI getDefaultURI(); Properties getDefaultProperties(); CacheManager getCacheManager(URI uri, ClassLoader classLoader); CacheManager getCacheManager(); void close(); void close(ClassLoader classLoader); void close(URI uri, ClassLoader classLoader); boolean isSupported(OptionalFeature optionalFeature); } |
尽管可选,在Java SE环境中获取CachingProvider实例的主要手段是使用Caching引导类。
Caching引导类提供了三种机制,以便定位和实例化一个或多个CachingProvider:
●假定实现中被定义为一个服务,并通过使用一个java.util.ServiceLoader来解析它。
●允许开发人员通过设置javax.cache.CachingProvider的 Java系统属性定义所需的CachingProvider的完全限定类名来指定默认的实现。
●允许应用程序使用完全限定类名显式地定义CachingProvider。
虽然开发人员可以选择使用和具体技术相关的实现获取CachingProvider,但这样做能会降低CachingProvider实现之间的应用程序的可移植性。
在Java EE环境中,CachingProvider在内部使用,用以管理CacheManager,被用来注入所需的缓存到应用程序中。
CachingProvider的实现会由缓存引导类java.util.ServiceLoader自动定位,应用程序实现的CachingProvider必须依照JAR文件规范,在META-INF/services/javax.cache.spi.CachingProvider配置文件中定义CachingProvider的完全限定类名。
该javax.cache.spi.CachingProvider配置文件用于定义特定的CachingProvider缓存引导类的实现类,从而使其能够自动定位,加载,并为应用程序提供实例化请求。
javax.cache.spi.CachingProvider配置文件的内容简单地包含一个或多个完全限定类名,每一个单独的行中,指定一个可用的CachingProvider实现类名称。
例如:
一个Java缓存API实现者,ACME的缓存产品,附带一个名为acme.jar的JAR,里面包含了CachingProvider的实现。该JAR的内容中既包括CachingProvider实现类,又包含javax.cache.spi.CachingProvider配置文件。
META-INF/services/javax.cache.spi.CachingProvider com/acme/cache/ACMECachingProvider.class ... |
文件META-INF/services/javax.cache.spi.CachingProvider的内容仅仅包含下面一行实现类的名称:
com.acme.cache.ACMECachingProvider |
应用程序可以使用多个CachingProvider实现,只要正确配置META-INF/services/javax.cache.spi.CachingProvider文件。当在多个CachingProviders的情况下,从缓存引导类要求返回默认的CachingProvider会导致抛出异常。
Caching缓存引导类方法定义如下:
public final class Caching { public static ClassLoader getDefaultClassLoader() public void setDefaultClassLoader(ClassLoader classLoader) public static CachingProvider getCachingProvider() public static CachingProvider getCachingProvider(ClassLoader classLoader) public static Iterable<CachingProvider> getCachingProviders() public static Iterable<CachingProvider> getCachingProviders( ClassLoader classLoader) public static CachingProvider getCachingProvider(String fullyQualifiedClassName) public static CachingProvider getCachingProvider( String fullyQualifiedClassName, ClassLoader classLoader) } |
原文:http://blog.csdn.net/wilbertzhou/article/details/24314731
内容总结
以上是互联网集市为您收集整理的缓存提供者CachingProvider全部内容,希望文章能够帮你解决缓存提供者CachingProvider所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。