启动入口Start.java分析
框架的启动器在包:org.ofbiz.base.start
入口为:Start.java的main方法
Start.java启动器内容:
|
步骤 |
详情 |
|
入参校验 |
help/status/shutdown/还是执行命令 |
|
加载配置 |
从环境变量ofbiz.system.props获取配置文件 |
|
初始化classpath加载类库 |
类库列表见Config.java的initClasspath()和readConfig() |
|
初始化日志文件夹 |
- |
|
创建监听线程 |
启动socket server,监听0端口(具体见ofbiz.admin.port属性,在start.properties或其他) |
|
向runtime加入addShutdownHook |
在退出时触发,做优雅退出 |
|
初始化StartLoaders |
创建启动器实例列表,多数是ContainerLoader一个元素,某些情况下还有SplashLoader。 Start.java的initStartLoaders() -> ContainerLoader.java的load() -> loadContainer() -> ComponentContainer.java的init()->loadComponents()->loadComponentFromConfig()->loadComponentDirectory() ->File configFile = FileUtil.getFile(componentLocation + "/ofbiz-component.xml");->循环调用loadComponent()把模块的jar包加入classpath 其中ComponentConfig.java是xml文件在java中的解析。 |
|
start()->StartupLoader的start()->容器的start() |
容器列表默认来自framework/base/config/ofbiz-containers.xml |
浙公网安备 33010602011771号