jforum——缓存

发布于 2021-11-28 17:38:36 字数 1726 浏览 838 评论 1

1.http://ericxu131.iteye.com/blog/179925

JForum的cache是由net.jforum.cache包下的类来实现的

Cacheable.java这个接口为Repository实现提供cache引擎
CacheEngine.javaJForum的Cache引擎接口
DefaultCacheEngine.javaJForum提供的默认cache引擎实现
EhCacheEngine.javaEhCache的cache引擎实现
JBossCacheEngine.javaJbossCache的cache引擎实现
JBossCacheListener.javaJboss的TreeCacheListener实现

 

net.jforum.repository包下的类都是Cacheable.java接口的实现类,每个repository类通过静态方法提供具体的业务cache方法。

 

net.jforum.JForumBaseServlet.java是JForum中servlet的一个基类,在它的init方法中调用了ConfigLoader.startCacheEngine();方法来初始化所有的Repository。在这个方法中,JForum从SystemGlobals.properties文件中取得Cache引擎的类型,实例化它,之后从这个配置文件中继续取出repository的列表,然后依次实例化每个repository并将Cache引擎注入。

Java代码   收藏代码

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不再见 2021-11-29 08:24:51

2.http://www.cnblogs.com/fora/archive/2010/04/23/1718781.html

作为一个论坛,应用层缓存这样的东西似乎必不可少,jforum也提供了缓存配置(上面也提到一些)。jforum提供了数种缓存实现(JForumBaseServlet的init流程),分别是DefaultCacheEngine(简单的内存实现),JBossCacheEngine,EhCacheEngine。,请看ConfigLoader的startCacheEngine方法,流程大概就是得到cacheEngine的实现配置(SystemGlobals.properties中配置cache.engine.implementation),然后产生CacheEngine的实例,调用它的init方法进行初始化,然后找到所有的可缓存类(实现了Cacheable接口,并在SystemGlobals.properties中配置cacheable.objects),最后把cacheEngine注入进去获得cache的能力。虽然jforum自己实现了许多这样的注入(除了cacheEngine,还有db,dao等等),虽然达到了一定的的目的,可是怎么说还是到处充满了Singleton的实现(参考spring2.5文档3.9. 粘合代码和可怕的singleton),为了寻求更好的组织方式(例如使用ioc来管理对象,使用成熟的orm来隔离数据库)和获得更多的用户群(选择更广泛使用的框架帮助),大概才会萌发jforum3的想法吧。 

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文