转:http://xmmartin.blog.51cto.com/2310947/771236
主导建设一个电子商务系统
希望从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