JForum源码学习研究2-初始化步骤

JForum最基本的Servlet为JForumBaseServlet和JForum,JForum论坛的初始化就是以这两个累的初始化开始:
执行JForumBaseServlet init,
1: 载入SystemGlobal.properties文件
ConfigLoader类主要是用来加载各种配置,也包括了SystemGlobal.properties, 缓存配置等等。
ConfigKeys定义了所有用到的配置常量。
SystemGlobal.java是专门用来加载SystemGlobal.properties和jforum-custom.conf文件。
在SystemGlobal.properties中存在嵌套的变量定义,比如 config.dir = ${resource.dir}/config,
那么通过SystemGlobal.getValue(String)来获取confgi.dir的时候,首先获取 ${resource.dir}/config,然后使用VariableExpander来将resource.dir替换掉。
VariableExpander定义了某个变量前缀和后缀,比如这里是${ 和 },就可以获取resource.dir,然后在通过SystemGlobal.getVariableValue(Str)来获取
resource.dir的值。
如果已经安装了论坛,还将加载jforum-cunstom.conf.文件。其实就是简单的资源文件,不存在嵌套的变量引用。

2:初始化缓存引擎
SystemGlobal.properties中有这么一段关于缓存引擎的资源配置:
cache.engine.default = net.jforum.cache.DefaultCacheEngine
cache.engine.jboss = net.jforum.cache.JBossCacheEngine
jboss.cache.properties = ${config.dir}/jboss-cache-cluster.xml

cache.engine.implementation = ${cache.engine.default}

cacheable.objects = net.jforum.repository.BBCodeRepository, \
net.jforum.repository.RankingRepository, \
net.jforum.repository.SmiliesRepository, \
net.jforum.repository.ForumRepository, \
net.jforum.repository.TopicRepository, \
net.jforum.SessionFacade, \
net.jforum.repository.PostRepository, \
net.jforum.repository.Tpl, \
net.jforum.repository.RolesRepository, \
net.jforum.repository.SecurityRepository, \
net.jforum.repository.BanlistRepository

这里涉及到两个接口,一个事CacheEngine,一个是Cacheable
CacheEngine定义了用来存放缓存数据的机制,Cacheable表示可存放缓存的对象。
目前CacheEngine有三个实现类,DefaultCacheEngine,EhCacheEngine,JBossCacheEngine。
Jforum默认的是使用defualtCacheEngine,我们也可以通过配置cache.engine.implementation来使用自定义的缓存引擎。

备注:DefaultCahceEngine中add(String key,Object value)的实现方式很奇怪。CacheEngine中的注释是说该方法使用Dummy对应的cache来存储value,而DefaultCacheEngine中直接是使用存放Cache的HashMap来实现,这样这个value的值就和Cache同一等级了,但是依照接口的说明,Value应该是存放在Cache中的,此为疑点。

Repository为Cacheable的子类,分别对应笑脸、文章等缓存的仓库。

3:设置页面模版引擎,JForum使用的FreeMarker来实现论坛展现模版定制的功能,使普通的美术设计人员也能够通过修改默认模版来定制论坛的展现方式。

4:调用loadConfigStuff(),载入页面URL与参数的配置;国际化配置文件;URL与模版具体文件的具体文件路径与名字的对应配置,详 见\WEB-INF\config\templatesMapping.properties文件;载入BB Code配置。

JForumBaseServlet.startApplication().
1:载入通用的SQL查询语句
2:载入任务配置文件信息(quartz)
3:初始化验证器
4:加载DAO的实现
5:记载配置文件修改监听
6:初始化索引(lunece)
7:开始summary job

初始化论坛的基本数据,比如笑脸等数据。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值