当前位置: 首页 > 知识库问答 >
问题:

使用统计服务从XMLConfiguration创建CacheManager

谭京
2023-03-14

我知道如何在org中使用xml配置创建CacheManager。ehcache:ehcache:3.8.1:

import org.ehcache.config.Configuration;
import org.ehcache.xml.XmlConfiguration;
import org.ehcache.config.builders.CacheManagerBuilder;
    .
    .
    .
    URL myUrl = CacheUtil.class.getResource("/my-config.xml");
    Configuration xmlConfig = new XmlConfiguration(myUrl);
    cacheManager = CacheManagerBuilder.newCacheManager(xmlConfig);
    cacheManager.init();

我还知道如何使用统计服务创建缓存管理器:

StatisticsService statisticsService = new DefaultStatisticsService();
CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
      .using(statisticsService)
      .build();
cacheManager.init();

但是如何使用统计服务从XML配置创建缓存管理器呢?

共有2个答案

郦翰学
2023-03-14

类EhcacheManager中有一个构造函数,它接受2个参数:

public EhcacheManager(Configuration config, Collection<Service> services)

您可以按如下方式使用它:

URL myUrl = CacheUtil.class.getResource("/my-config.xml");
Configuration xmlConfig = new XmlConfiguration(myUrl);

StatisticsService statisticsService = new DefaultStatisticsService();
Set<Service> services = new HashSet<>();
services.add(statisticsService);

cacheManager = new EhcacheManager(xmlConfig, services);
姚丰羽
2023-03-14

下面是演示基本JCache配置API用法的示例代码:

 CachingProvider provider = Caching.getCachingProvider();  
CacheManager cacheManager = provider.getCacheManager();   
MutableConfiguration<Long, String> configuration =
    new MutableConfiguration<Long, String>()  
        .setTypes(Long.class, String.class)   
        .setStoreByValue(false)   
        .setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(Duration.ONE_MINUTE));  
Cache<Long, String> cache = cacheManager.createCache("jCache", configuration); 
cache.put(1L, "one"); 
String value = cache.get(1L); 

>

使用提供程序检索默认的CacheManager实例。

使用MutableConfiguration创建缓存配置

键类型和值类型分别为LongString...

配置为通过引用(而不是通过值)存储缓存条目...

并为从那一刻起的条目定义了一分钟的到期时间,从而创建了这些条目。

使用缓存管理器,使用步骤中创建的配置创建名为jCache的缓存

将一些数据放入缓存中。

 类似资料:
  • 我使用windows服务和Unix ssh服务在windows中创建了一个从服务器,在Unix中创建了一个从服务器。当我使用复制到从插件将一个文件从主服务器复制到从服务器时,它在Unix中工作。但如果我在windows上做同样的事情,该文件将自己复制到主服务器中。我给出了下面的输出。它显示的目录在主计算机中,而不在从计算机中。 在工作区C:\jenkins\slaves\workspace\pyt

  • 4.4.1.4 创建/使用内部服务 内部服务是除了内部应用以外的应用禁止使用的服务。 它们用于内部开发的应用,以便安全地共享信息和功能。 以下是使用Messenger绑定类型服务的示例。 要点(创建服务): 定义内部签名权限。 需要内部签名权限。 不要定义意图过滤器,并将导出属性显式设置为true。 确认内部签名权限是由内部应用定义的。 尽管意图是从内部应用发送的,但要小心并安全地处理接收到的意图

  • 4.4.1.3 创建/使用伙伴服务 伙伴服务是只能由特定应用使用的服务。 系统由伙伴公司的应用和内部应用组成,用于保护在伙伴应用和内部应用之间处理的信息和功能。 以下是 AIDL 绑定类型服务的示例。 要点(创建服务): 不要定义意图过滤器,并将导出属性显式设置为true。 验证请求应用的证书是否已在自己的白名单中注册。 请勿(无法)通过onBind(onStartCommand, onHandl

  • 4.4.1.2 创建/使用公共服务 公共服务是应该由未指定的大量应用使用的服务。 有必要注意,它可能会收到恶意软件发送的信息(意图等)。 在使用公共服务的情况下,有必要注意,恶意软件可能会收到要发送的信息(意图等)。 下面展示了如何使用startService类型服务的示例代码。 要点(创建服务): 将导出属性显式设置为true。 小心并安全地处理接收到的意图。 返回结果时,请勿包含敏感信息。 A

  • 4.4.1.1 创建/使用私有服务 私有服务是不能由其他应用启动的服务,因此它是最安全的服务。 当使用仅在应用中使用的私有服务时,只要您对该类使用显式意图,那么您就不必担心意外将它发送到任何其他应用。 下面展示了如何使用startService类型服务的示例代码。 要点(创建服务): 将导出属性显式设置为false。 小心并安全地处理收到的意图,即使意图从相同应用发送。 由于请求应用在同一应用中,

  • 创建 faygo 的Web服务非常灵活自由。用户可以设置服务名称、服务版本号,一个项目应用可以同时创建多个服务、多种网络类型。 支持的网络类型: 网络类型 配置net_types值 HTTP http HTTPS/HTTP2(TLS) https HTTPS/HTTP2(Let’s Encrypt TLS) letsencrypt HTTPS/HTTP2(Let’s Encrypt TLS on