您的位置:首页 > 大数据 > 人工智能

ofbiz中的container-1

2015-06-18 15:18 453 查看
在ofbiz中,主要有三种container
系统启动时候的container


这个在启动类中被调用,根据framework\base\config\ofbiz-containers.xml中的定义加载其他容器

用来加载组件的container



在这里边定义的container会被顶层container启动,执行指定的class类
这里定义的container执行的时候基本上是组件还没有加载

组件中component-load.xml定义的container


这里边的容器基本上是在组件配置全部加载完毕后开始执行

//获取全部组件中定义的container
List<ContainerConfig.Container> containersDefinedInComponents = ComponentConfig.getAllContainers();
for (ContainerConfig.Container containerCfg: containersDefinedInComponents) {
boolean matchingLoaderFound = false;
if (UtilValidate.isEmpty(containerCfg.loaders) && UtilValidate.isEmpty(loaders)) { //比较启动级别
matchingLoaderFound = true;
} else {
for (String loader: loaders) {
if (UtilValidate.isEmpty(containerCfg.loaders) || containerCfg.loaders.contains(loader)) {
matchingLoaderFound = true;
break;
}
}
}
if (matchingLoaderFound) {
Debug.logInfo("Loading component's container: " + containerCfg.name, module);
Container tmpContainer = loadContainer(containerCfg, args); //加载Container,执行其中的init方法
this.loadedContainers.add(tmpContainer);//加入缓存
Debug.logInfo("Loaded component's container: " + containerCfg.name, module);
}
}

总结:
这三个地方的container并没有什么不同,主要是因为启动顺序和作用的问题把这些container写在不同的配置文件中
本文出自 “沧海龙腾” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: