启动入口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 |