主导建设一个电子商务系统 希望从Ofbiz了解中获得一些借鉴 1.下载ofbiz,目前的版本是10.04,下载地址 readme.txt查看 2.开始 下载后解压,在解压后的目录中找到readme.txt, 系统中需要安装有JDK1.6以上的版本,注意是JDK,不是JRE 3.编译 Linux:./ant run-install Windows:ant run-install 4. 运行 编译完成后,运行 Unix类系统:startofbiz.sh Windows:startofbiz.bat 运行完成后 前台查看:http://localhost:8080/ecommerce 后台查看:https://localhost:8443/webtools 用户名;Admin,密码:ofbiz ant 分析暂时略过,ant不熟悉 startofbiz.sh分析 设备各种参数,运行 ofbiz.jar文件 5 源代码分析 开始运行文件位于 Framework->start->src->org->base->start->Start.java(解压ofbiz.jar就可以知道开始运行此文件) 5.1 Start.java分析 先分析运行 Start.init(); Start.start();// Start是一个线程 //init 读取配置文件 初始化Classpath 初始化LOG路径 初始化listenerthread 初始化StartLoaders run:启动管理监听线程,监听管理指令 start: 5.2 启用loader,开始loader 读取配置文件,org/ofbiz/base/start/install.properties 启动loader :Framework->base->src->org->base->container->Containerloader.java Container先load,再start 要启用的Container在 Framework->base->config->install-container.xml中定义 一共启动的Container是 ComponentContainer,ClassLoaderContainer,EntityDataLoadContainer 先init,再start 5.3 componentContainer分析 从 component-load.xml载入component 都是从目录下载入多个component 1)先从framework目录中,根据目录下的component-load.xml载入单个的component 2) 再从theme目录,theme目录中没有component-load.xml. 子目录中有ofbiz-component.xml, 3) 再从application目录 4)再从sepcialpurpose目录 5)再从hotdeploy目录 5.4 从ClassLoaderContainer 5.5 从EntityDataLoadContainer, Start()函数 从DelegatorFactory GetDelegator entity目录下 META-INF定义了 DelegatorFactoryImpl实例 new GenericDelegator 中间从StringUtil中打印OWASP内容 ModelReader 从EntityEngine.xml中取出DelegatorInfo 取default delegator 载入Entity entity检查 help datasource检查 deleagator生成结束 initEntityEcaHandler