上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.3.1 getDna服务
无论是前台界面还是后台服务,只要用到实例的地方,都要使用Dna。Dna是基于元数据模型的系统中使用频率最高的对象,需要将其缓存在本地Java虚拟机的内存中,以便在需要的时候快速获得。DnaCacheService是本地访问Dna的接口,DnaCacheService的接口实现为DnaCacheServiceImpl,当系统启动时,将Dna加载到本地缓存中。DnaCacheService的getDna原型定义为Dna getDna(String businessType, String dnaCode),代码如下:
该服务首先根据businessType和dnaCode在HashMap类的dnaMap中查找(dnaMap中存放所有根节点的Dna对象)。如果找不到,继续在childDnaMap中查找(childDnaMap存放非根节点的Dna对象)。如果还找不到,就从其他相关注册的缓存中查找。如果还是没有找到,就抛出异常。