`
aben328
  • 浏览: 1457153 次
  • 性别: Icon_minigender_1
  • 来自: 广东
社区版块
存档分类

开源的JEECMS 2.3.2架构分析

阅读更多

开源的JEECMS 2.3.2架构分析

<!-- 作者信息等 -->
作者:施杨  来源:博客园  发布时间:2009-11-03 16:08  阅读:274 次  原文链接   [收藏]  
<!-- 页码和简介 -->

      首先说点题外话,本人不是一个喜欢拿别人做好的开源系统,修改几个图片和页面,就说把这个系统说成是自己开

发的的人。俺很鄙视这样的人。你改本身没有问题,在时间紧,手下没人的情况下,改一个开源系统确实很方便很快捷,节约大

把的开发成本。但是你改完以后说成是自己开发的就未免有些二了。我至今还没有一个项目是改出来的。全都是自己编写。首先我

觉得在我的学习阶段,首先应该以提高自己的编程水平为主,其他东西在我眼里都是粪土。对于一个编程人员来说,这种东西的内

在架构还是值得一看的。不过也完全没有那么神秘或者说深奥。今天我就抽出1个小时,剖析一下 JEECMS 2.3.2 这个J2EE版的

开源CMS之所以选择这个开源系统,是因为有人号称,这个系统比我之前自己设计的架构还要高一个档次。所以,我也很想一

探究竟。看看到底有没有高出一个档次。

 

          这个系统在半年前我就玩过并且部署过了,那个时候这个系统还是没有完全开源,还是1.0 Beta版,因为好几个关键

jar包都没有开放源码,也就没有研究他的架构,而是不断的学习眼前的知识。直到前些天,一个大四的师兄说用这个系统改了一个

网站,才让我重拾以前封尘已久的记忆。当然我当时也没有打算去研究这个开源系统,但是直到后来有个人说这个系统比我的架构

高一个档次的时候,我决定花上一点时间一窥究竟。证实一下这个说法。同时也让自己设计能力长进一下。

 

       切入正题----------------------

 

         剖析系统第一步,当然要先部署上了,首先查看其install目录的jsp文件,得知其web.xml是在安装过程中拷贝过去的

SQL件也一览无余,所以俺把源码放好,web.xml拷贝过去,建了库。顺利部署。

 

         然后就是窥探其web.xml了,通过web.xml可以得知这个系统采用了:struts2+hibernate+spring+FreeMarker(

然这个东东不需要要配置),通过Jar包版本,我可以知道用的是struts2.1.6hibernate3.3spring2.5系列。此外在线编辑器

Fckeditor2.4,还用了一个验证码组件,以及路由过滤器,Proxool连接池。我们仅通过这一个配置文件就可以了解到这些。

 

    然后是窥探spring配置文件,看看我们能发现什么,首先这个系统采用的是spring紧耦合hibernate好处就是省去一个

文件,坏处就是耦合过紧,不易拆分。此外开启了hibernate二级缓存,缓存采用ehcache1.6,此外加入了spring事务,事务处理

通过Annotation注入,半年前系统学习过源注释,也深知其使用的优缺点。优点干净简洁易修改,缺点不利于维护,业务与配置混杂。

 

    通过引用的jar包可以知道其适用的是dom4j操作xml,全文索引采用了lucene+baoding,日志系统采用slf4j+logback

OK,上面所列举的种种组件也很大众化,没什么技术难点。实在感受不出比我的架构高一个档次来,再继续研究。

 

      通过查看组件的配置,可以知道其部分数据做了持久化缓存,例如站点实体,全局变量,功能集等等,不详细举出了。Struts2

采用了分散配置的做法,这样功能模块更加的清晰。通过查看其配置可以知道使用了struts2validate组件。这个系统把所有模板都

放入了WEB-INF下,这样安全性进一步提升了,这也是我感觉非常棒的做法。不过这种方案以前也早就知道。

 

      源代码分为七部分,分别是文章部分,辅助模块部分,CMS系统部分,核心部分,下载部分,模板部分,以及ponyjava

具包。其中文章,核心,辅助,CMS,下载更新模块都采用了SSH2的七层结构。至于类的内部结构,我也不做过多解释了,因为

这篇文章只是说架构的。

 

      因为源码里没有测试包,所以俺不清楚这个系统用的啥测试,不过这也不是重点。单从以上分析来开,此系统基于整站模板

引擎技术,jsCss,图片等资源与模板分离,模板放置在WEB-INF下,因此仅能通过struts2去调用,安全性非常棒,分离也非常

清晰。页面请求使用了伪静态,便于搜索引擎收录。然后就是有一套完善的日志系统,搜索采用了流行的lucenebaoding分词做

搭配。此外数据库配有连接池,并且配有二级缓存与持久化缓存。验证码也使用了现成的组件,Ajax使用了Json介质,在线编辑器

使用的FCKFCK禁用了浏览服务器,而且FCK的上传资源也不提供管理,所以并没有超越我扩展后的FCK,源码的研究价值还是比

较大的。尤其是一些工具类,非常具有参考价值。

 

      架构分析到这------------------

 

      我觉得这样的架构设计的非常合理,但是经过研究后依旧和我之前项目的架构是同样的级别。具体我也不想另行阐述,所以

请没有研究过这个系统就妄下定论的人闭上你的嘴。你用别人写好的架构本没有错,但是你把别人的现成的思想说成自己的,把别人

的劳动归功到自己的身上,我觉得这种人是虚伪的,是可耻的,麻烦睁大眼睛看看这个世界。如果说掌握这样的架构五年内不用学

习新技术,那眼界真的有够渺小,多读读书吧。

 

      一个小时分析完毕!上课去了。

分享到:
评论
3 楼 a123456603 2011-03-02  
呵呵,有空分析一下3.0.4版本的架构和源码,是springmvc的,你的框架是什么?
2 楼 liuweizaixian 2010-07-19  
貌似你很牛B
1 楼 ghostyq37 2010-04-06  
有可取之处,说很好谈不到,多看看此类框架,有助于完善自己的框架

相关推荐

    [CMS程序]JEECMS 2.3.2 Final 系统程序_jeecms-2.3.2-final.zip

    【CMS程序】JEECMS 2.3.2 Final 是一款基于Java技术和JSP的开源内容管理系统,适用于构建企业网站、新闻门户等电子商务平台。这个系统版本为2.3.2,标记为Final,意味着它是该版本的最终稳定版,为用户提供了可靠且...

    [CMS程序]JEECMS 2.3.2 Final 系统程序_jeecms-2.3.2-final.rar

    【CMS程序】JEECMS 2.3.2 Final 是一款基于Java企业级开发平台的开源内容管理系统。作为一款强大的CMS解决方案,它为网站构建、管理和维护提供了丰富的功能和灵活性。JEECMS的核心优势在于其高效、安全和可扩展性,...

    [CMS程序]JEECMS 2.3.2 Final 系统源码_jeecms-src.rar

    【CMS程序】JEECMS 2.3.2 Final 系统源码是针对企业级内容管理系统(CMS)开发的一款开源软件。JEECMS作为Java平台上的代表,它以其高效、安全、稳定和易用性著称,尤其适用于构建大型网站和复杂的Web应用。源码的...

    jeecms2.3.2

    《Jeecms 2.3.2:开源CMS系统深度解析与应用》 Jeecms是一款基于Java技术的开源内容管理系统,版本2.3.2是其发展历程中的一个重要节点。这款系统以其强大的功能、易用性和灵活性,在企业级网站建设和管理领域备受...

    JEECMS v2.3.2 Final版是JEECMS面世以来发布的第一个正式版是JEECMS面世以来发布的第一个正式

    五、面向未来的过渡,JEECMS v2.3.2 Final版是JEECMS面世以来发布的第一个正式版本,具有更大的灵活性和稳定性;-一、系统内核完全开源,为用户提供透明的管理平台,为java初学者提供良好的学习平台; 二、核心模板...

    [JAVA开源]jeecms(网站发布系统)

    【JAVA开源】Jeecms(网站发布系统)是一款基于Java技术构建的企业级内容管理系统,它以其高度可定制性、灵活性和强大的功能集而备受开发者欢迎。Jeecms旨在为企业和个人提供一个快速、稳定且易于维护的网站解决方案...

    jeecms-2.3.2-final-db oracl建库脚本

    《Jeecms 2.3.2-Final 在 Oracle 数据库中的建库脚本转换详解》 Jeecms,一个成熟的Java内容管理系统,通常与MySQL数据库配合使用。然而,在某些特定场景下,用户可能需要将数据库环境从MySQL切换到Oracle。本文将...

    jeecms-2.3.2-final源代码

    JEECMS是JavaEE版网站管理系统(Java Enterprise Edition Content Manage System)的简称。 基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点 采用hibernate3+struts2+spring2+freemarker...

    JEECMS v2.3.2 正式版用源码

    JEECMS是JavaEE版网站管理系统(Java Enterprise Edition Content Manage System)的简称。 基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点 采用hibernate3+struts2+spring2+freemarker...

    Jeecms开源内容管理系统

    1. 基于MVC架构:Jeecms采用Model-View-Controller设计模式,使得业务逻辑、数据模型与用户界面分离,提高了系统的可维护性和扩展性。 2. 数据库无关性:Jeecms支持多种数据库,包括MySQL、Oracle、SQL Server等,这...

    JAVA开源CMS JEECMS v3.0

    感谢您使用JEECMS,系统使用过程中如遇到问题,请到JEECMS的官方网站http://www.jeecms.com 查看相关资料,或者加入JEECMS官方论坛(http://bbs.jeecms.com)发帖和大家一起交流,我们的技术人员和众多会员一起与您...

    jeecmsv2.3.2 内容管理系统 (hibernate3+struts2+spring2+freemarker)

    JEECMS是JavaEE版网站管理系统(Java Enterprise Edition Content Manage System)的简称。 · 基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点 · 采用hibernate3+struts2+spring2+...

    ## JEECMS 国内最知名的Java开源CMS系统

    作为国内最知名的Java开源CMS系统,我们一直秉承开源、易用、高性能、安全的系统开发原则,并以作国内优秀的开源网站管理系统为己任,始终坚持不懈地为用户提供强大的Java技术web应用服务。 JEECMS v2.4.2 正式版...

    jeecms(myeclipse中)开源可以部署的项目

    个人已经经过测试,直接复制在myeclipse中,运行tomcat就可以用了。 前台地址:http://localhost:8080/JEECMS 后台的地址:http://localhost:8080/JEECMS/jeeadmin/jeecms/index.do 账号:admin 密码:password

    jeecms二次开发必备

    1.4 Jeecms工程的包结构分析 Jeecms的源码结构清晰,便于理解和二次开发。主要包含以下几个模块: - 文章模块:处理文章的发布、管理及展示,是内容管理的基础。 - 辅助模块:提供如用户管理、权限控制等辅助功能。 ...

    JEECMS V8.0 源码

    - `jeecmsv8.1-src` 文件夹包含了JEECMS V8.0的全部源代码,开发者可以通过深入研究源码了解系统的架构和实现细节,为自定义开发提供基础。 - 学习源码有助于提升对Java Web开发的理解,特别是对Spring、Hibernate...

    jeecms个人标签文档

    Jeecms是一款基于Java技术开发的内容管理框架,它以其高效、灵活和开源的特性在IT行业中受到了广泛的关注。这款系统主要用于构建企业网站、新闻门户等,采用MVC架构,提供了丰富的标签库,使得开发者能够快速进行...

    jeecms 爬虫 1.3 正式版 (附带整合 jeecms2012工程源码)

    【Jeecms 爬虫 1.3 正式版】是一款专为Jeecms内容管理系统设计的爬虫工具,结合了Jeecms 2012版本的工程源码,提供了对Jeecms网站内容抓取和分析的功能。这款工具对于开发者来说,能够帮助他们快速地获取和解析...

    Jeecms学习笔记

    在这个过程中,开发者将深入理解Jeecms的架构、核心组件以及如何进行代码的修改与优化。下面我们将详细解读这一主题。 1. **Jeecms系统简介** Jeecms是一款基于Java技术开发的内容管理系统,它采用了MVC设计模式,...

Global site tag (gtag.js) - Google Analytics