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
  • 相关文章

    迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
    高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
    策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
    访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
    命令模式(Command)命令模式(Command)[Action/Transactio...
    生成器模式(Builder)生成器模式(Builder)意图:将一个对...