ehcache 创建创建单一实例与否的判断,以及,哪个静态方法,只在不存在的时候创建

前端之家收集整理的这篇文章主要介绍了ehcache 创建创建单一实例与否的判断,以及,哪个静态方法,只在不存在的时候创建前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

首先说echache创建对象的四种方式

首先分为两大类,1使用默认的缓存配置文件

  • publicstaticvoidmain(String[]args)
  • {
  • CacheManagermgr1=CacheManager.getInstance();
  • CacheManagermgr2=CacheManager.create();
  • CacheManagermgr3=CacheManager.newInstance();
  • System.out.println(mgr1==mgr2);//true
  • System.out.println(mgr1==mgr3);//true
  • }



    2,根据自定义配置文件


    1. URLurl=TestCacheManager.class.getClassLoader().getResource("conf/ehcache.xml");
    2. CacheManagermgr1=CacheManager.create(url);
    3. CacheManagermgr2=CacheManager.create("src/conf/ehcache.xml");
    4. CacheManagermgr3=CacheManager.newInstance("src/conf/ehcache.xml");
    5. System.out.println(mgr1==mgr2);//true
    6. System.out.println(mgr1==mgr3);//true
    其次:这几种方式哪几种如果已经创建cacheManager 实例,就不会再创建的;哪个会继续创建新的cacheManager实例

    如果已经存在,就不会再创建:

  • CacheManagermgr1=CacheManager.create(url);
  • CacheManagermgr2=CacheManager.create("src/conf/ehcache.xml");如果已经存在,还会继续创建:
  • CacheManagermgr3=CacheManager.newInstance("src/conf/ehcache.xml") 当使用ehcache.xml创建CacheManager对象的时候,CacheManager中的singleton属性会记录创建的对象值,即创建了CacheManager对象,singleton会记录该单例对象,不再是null
    CacheManager.create()和CacheManager.getInstance()都会先判断singleton属性是否为null,如果为null则继续调用newInstance(),如果不为null则直接返回。所以mgr1==mgr4==mgr5;
    CacheManager.newInstance();不会判断singleton是否为null,直接使用默认的ehcache-failsafe.xml,新建一个CacheManager对象,所以mgr1 != mgr
  • 猜你在找的设计模式相关文章