XMPP学习笔记-LESSON-002:ServerStarter.java

这个类很是简单,定义了2个变量:
DEFAULT_LIB_DIR                    默认的系统包路径,值../lib,能够看出这里的root是$openfireHome/bin,那么../lib,就是$openfireHome/lib目录,这里存放着用到的jar,或者jar.pack(pack?啥东西,一会再说)java

DEFAULT_ADMIN_LIB_DIR        这是默认的插件,即后台管理,他是一个webapp程序,jsp的,web服务器使用jetty,关于插件,之后会详细介绍web

ok,到此,咱们来看,openfire如何启动。服务器

main方法只有一句代码: new ServerStarter().start();app

读代码无聊么,其实挺有乐趣,代码是最好的学习资料,我的认为,:).webapp

看start().
String libDirString = System.getProperty("openfire.lib.dir");
这个干嘛呢?就是代替上面的DEFAULT_LIB_DIR ,意思若是你指定(或配置)了这个值,那么就以这个变量的值为准。jsp

同理还有, System.getProperty("openfireHome");
这个指定openfire的主目录位置。函数

下一步,就是读取lib以及插件的打包文件,解压pack,关注unpackArchives方法。学习

最后,经过ClassLoader,载入到环境变量里。插件

最关键的地方来,经过java反射,实例化org.jivesoftware.openfire.XMPPServer,这个才是xmppserver的核心类server

经过xmppserver,在构造函数中start 服务器。

预知如何启动,请看下节。

相关文章
相关标签/搜索