框架的启动器在包: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 |