最近同事在搞JFinal动态添加数据源配置,多亏了JFinal2.0的出现,才很方便的解决了这个问题。
我看他代码时,无意中发现插件还需要调用start()方法,于是就思考在总配置类里面配置插件之后是如何启动的。于是找了一下午,终于找到了。感谢孤星可大神分享的JFinal源码走读1——JFinal初始化(地址:http://my.oschina.net/u/1385515/blog/388831)。有些是从这里面借鉴过来的。
在ActiveRecord的源码中有一个start()方法,选中这个方法名字,右键,Open Call Hierarchy,可以看见这个方法被调用的结果
可以看到先被Config类调用,在被JFinal类调用,最后被JFinalFilter启动的。而JFinalFilter是被web容器启动的,因为它集成自javax.servlet.Filter,web容器启动时启动init方法(java web基础。。。)。最后JFinal容器的启动有两种方式,一个是手动开启tomcat,另一个是总配置文件的main方法。其他的不多说了,大家可以自己探究。