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

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

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

  • public static void main(String[] args)  
  • {  
  •     CacheManager mgr1 = CacheManager.getInstance();  
  •     CacheManager mgr2 = CacheManager.create();  
  •     CacheManager mgr3 = CacheManager.newInstance();  
  •       
  •     System.out.println(mgr1 == mgr2);// true  
  •     System.out.println(mgr1 == mgr3);// true  



  • 2,根据自定义配置文件


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

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

  • CacheManager mgr1 = CacheManager.create(url);  
  • CacheManager mgr2 = CacheManager.create("src/conf/ehcache.xml");  如果已经存在,还会继续创建:


  • CacheManager mgr3 = 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



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值