JForum学习笔记之初始化

来源: http://www.sanseyu.cn/?action=show&id=16

 

JForum中定义了一个JForumBaseServlet,通过调用JForumBaseServlet.init(ServletConfig config)来加载初始化系统,初始化过程如下:

  1. 获取webApplicationPath;
  2. 获取是否开始debug模式;
  3. 初始化log4j;
  4. 加载系统默认参数配置,/WEB-INF/config/SystemGlobals.properties,存放在Properties defaults中;
  5. 加载${config.dir}/database/${database.driver.name}/${database.driver.name}.properties,该配置文件
     增对不同数据库的参数的设置,其中config.dir,database.driver.name在SystemGlobals.properties中配置,存放在Properties installation中;
  6. 判断 ${config.dir}/jforum-custom.conf是否存在,若存在,读取存放在Properties installation中;
     注:读取系统配置的时候,会优先读取Properties installation中的参数值,如果不存在,则尝试读取Properties defaults中;
  7. 开启CacheEngine,初始化CacheEngine实现对象,并将其实例化,
    通过set方法将CacheEngine对象置入实现Cacheable接口并在配置文件中定义需要缓存的对象,对应的CacheEngine参数为static;
  8. 设置Template配置,不熟悉,暂时省略;
  9. ModulesRepository缓存模型映射配置,及module名字与class之间的实现映射;
  10. 读取URL路径映射配置,放置到UrlPatternCollection的private static Map patternsMap;
  11. 加载多国语言的配置,对应的变量的取值,系统参数配置中的i18n.board.default的值优于i18n.internal的值;
  12. Tpl缓存${config.dir}/templatesMapping.properties,及template映射;
  13. BBCodeRepository缓存配置BBCode,不熟悉,暂时省略;

JForumBaseServlet还有一个startApplication(),用来启动系统:

  1. 加载对应的数据库操作语句的映射;
  2. 读取${config.dir}/quartz-jforum.properties,设置到Properties installation中;
  3. 创建登陆认证器,存放到objectProperties中,Properties defaults与Properties ;installation为同一对象的参数;
  4. 实例化DataAccessDriver,DAO工厂;
  5. 监听配置文件是否修改任务;
  6. 初始化搜索管理类;
  7. 启动摘要任务;

你可能感兴趣的:(DAO,log4j,Web,quartz,配置管理)