一 org.ofbiz.base.start.Start.java
1调用 org.ofbiz.base.start.Config.java 的getInstance方法,readConfig 方法,主要加载属性文件start.properties
2调用start.java类 initClasspath方法
3调用start.java类createLogDirectory 方法创建日志文件
4调用start.java类createListenerThread 创建监听线程
5调用start.java类initStartLoaders加载初始化组件org.ofbiz.base.container.ContainerLoader.java
二org.ofbiz.base.container.ContainerLoader.java 类load方法
1调用org.ofbiz.base.container.ContainerConfig.java加载framework/base/config/ofbiz-containers.xml
2ContainerLoader的loadContainer 方法加载container。
1) <container name="component-container" class="org.ofbiz.base.container.ComponentContainer"/>
调用ComponentContainer的init方法,调用ComponentContainer的loadComponents方法(加载framework,application,themes,specialpurpose,hot-deploy),调用loadComponentFromConfig加载每一个组件,调用loadComponentDirectory方法,调用ComponentLoaderConfig.getComponentsFromConfig获取framework下面的每一个组件。loadComponentFromConfig(String parentPath, ComponentLoaderConfig.ComponentDef def),loadComponent(ComponentConfig config)
2)container name="classloader-container" class="org.ofbiz.base.container.ClassLoaderContainer"/>
3) org.ofbiz.base.container.NamingServiceContainer
4)org.ofbiz.service.rmi.RmiServiceContainer
5)org.ofbiz.catalina.container.CatalinaContainer
调用org.ofbiz.entity.DelegatorFactoryImpl.java的getInstance(String delegatorName)方法返回delegator对象
构造org.ofbiz.entity.GenericDelegator.java 对象