版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本栏目责任编辑:闻翔军数据库与信息管理Computer Knowledge and Technology 电脑知识与技术第6卷第10期(2010年4月基于开源框架的内容管理系统黄道斌,尹荣章,叶明全,朱金好(皖南医学院计算机教研室,安徽芜湖241000摘要:该文介绍了一个基于J2EE 开源框架设计的内容管理系统,针对内容管理系统的可维护性和良好的扩展性问题,讨论了Struts 、Spring 、Hibernate 等开源技术在解决这些问题的重要作用。关键词:设计模式;MVC ;CMS中图分类号:TP311文献标识码:A 文章编号:1009-3044(201010-2332-02Based on
2、 Open Source Framework's Content Management SystemHUANG Dao-bin,YIN Rong-zhang,YE Ming-quan,ZHU Jin-hao(Department of Computer,Wannan Medical College,Wuhu 241000,ChinaAbstract:This paper describes a content management system which is based on J2EE open-source framework.We discusses the Struts,Sp
3、ring,Hibernate and other open source technologies to solve these problems that the maintainability and good scalability of Content man -agement system played an important role.Key words:design patterns;MVC;CMS现在的很多大型的门户网站,都是在靠系统维护人员手工在更新和修改系统页面,如果想进行网站内容管理,面对千变万化的信息流,没有好的后台系统支持,工作量将是十分巨大的,如果有一个好的后台系
4、统来帮助维护人员提高效率,那将节省大量的人力物力,同时将系统维护的出错率降到最低。要实现这样一个系统一般至少要包含两大部分:后台业务子系统,主要用于内容的管理,新闻录入,论坛子系统、权限管理等等;另外一个就是前台系统。一般从头开发一个内容管理系统,开销非常大,本文提出一个基于开源技术的解决方案,所谓开源技术就是一些软件开发组织开发的一些软件,公开源代码,你可以在他们工作的基础上做少量的修改或做二次开发,从而定制我们一个完整的系统,目前在J2EE 技术平台上就有一些比较成熟的开源框架技术,比如Struts,Spring,Hibernate 等,用这些框架构建我们的软件系统成本开销低,开发效率高。
5、本文首先介绍有关开源框架技术,同时给出这些开源技术中用到的一些有些设计模式1,然后根据我们的设计目标,给出了内容管理系统的系统架构,最后就整个系统的优缺点做一个讨论。1开源技术简介Struts 是目前Web 开发中比较成熟的一种表现层的开源框架,它采用了MVC 经典设计模式,被大量J2EE 开发人员所接受。它对Servlet 、JSP 、JavaBean 等进行了封装,通过用户定义逻辑之间的跳转,实现页面信息的流转,而且用户自定义标签简化了数据表现的代码,为Web 开发提供了具有高可配置性的MVC 开发模式,它将Model 、View 和Controller 分别映射到Web 应用中的组件。M
6、odel 由Action 来构建,其本质是在这里调用业务逻辑接口,并不是所有业务逻辑在这里实现,View 是由JSP 和struts 提供的自定义标签来实现,Controller 负责控制流程,由ActionServlet 和ActionMapping 来完成2。Spring 是一个流行的开源轻型容器(light-weight container,其最核心概念是Bean 工厂(Bean Factory,它能够很方便的配置、装配JAVABEAN 和普通的java 对象,通过IOC 容器和依赖注入技术无缝的将各个协同工作的业务逻辑对象整合在一起。而且Spring 提供了AOP (Aspect-Or
7、iented Programming,面向层面的编程的实现,用它来提供非管理环境下申明方式的事务、安全等服务;DAO/ORM 的实现方便我们进行数据库的开发;Web MVC 和Spring Web 提供了Java Web 应用的框架或与其他流行的Web 框架进行集成5。Hibernate 是一个免费的实现了ORM 的开源Java 包,是java 应用程序和关系数据库之间的桥梁。负责java 对象和关系数据之间的映射,其内部封装了JDBC 访问数据库的细节,它使得与关系数据库打交道变得十分轻松,向业务层提供了面向对象的数据访问API 6。2设计模式与IOC设计模式是在多个项目中总结出来成熟的针对
8、具体问题所提出的解决方案,由于在实际项目中反复检验,可以在后续的项目中结合具体情况选择并重用。设计模式在面向对象开发领域现在已经是一个非常热门的技术,总的可以分为三大类:创建型,主要与对象的创建有关;结构型,用于解决多个对象之间如何构建复合对象的方法;行为型1。在我们前面刚刚介绍的几种开源框架中,采用了我们三大类型设计模式中的多种,如著名的MVC 模式。控制反转(Ioc 是Spring 框架的核心技术,其本质是减少业务组件之间的依赖性和耦合性。在传统的方式中,我们要调用其他业务类来协同工作,需要在代码中编写相应的代码来查找和定位相关类,由于是硬编码,测试和以后业务变更修改变动相当大,不利于开发
9、收稿日期:2010-01-19作者简介:黄道斌(1981-,男,安徽芜湖人,硕士,皖南医学院,主要研究方向为软件工程、信息安全、软件项目管理。ISSN 1009-3044Computer Knowledge and Technology 电脑知识与技术Vol.6,No.10,April 2010,pp.2332-2333E-mail:jslt Tel:+86-551-569096356909642332数据库与信息管理本栏目责任编辑:闻翔军Computer Knowledge and Technology 电脑知识与技术第6卷第10期(2010年4月和维护。控制反转(Ioc 就是把类之间的关联
10、交由容器来完成,其实整个容器就相当于一个工厂,每个类需要什么都不需要自己动手去找,而是通过注入技术来完成相关类之间的依赖关系,因此采用Ioc 技术非常适合实施针对接口编程,在业务类中声明依赖对象只须用接口的方式,而任何实现了该接口的类都可以相互替换,只须在相应的配置文件中声明即可,非常利于代码维护和系统扩展。3系统架构在前面介绍的基础上,我们针对内容管理系统的可维护性和良好的扩展性,给出我们的设计目标,具体的设计实现,以及对整个设计的分析。3.1系统设计目标传统的J2EE 架构方案过于复杂,在J2EE 平台中由于其复杂的应用程序和整体性能的低下,特别是软件开发,测试维护成本是相当的高,因此我们
11、采用一种轻量级的解决方案。在开源框架领域有一个已经被很多J2EE 平台开发者所接受的就是Spring 技术,它支持控制反转(IOC 和AOP 编程,我们就是通过SPRING 技术来整合其他开源技术达到我们整个系统的目标要求:采用多层设计,并且每一层之间的扩展以及可替换性要很灵活,这利于以后整个系统的升级和维护;实现业务逻辑的代码必需与表现层的代码分开;业务层的数据整合可配置性需要灵活,方便系统扩展;对于数据保存方面,能够方面的整合来源不同的数据源。3.2系统设计根据前面的有关系统的目标分析,我们结合各个开源框架的技术特点,把整个系 统的设计方案实现如图1所示。如图1所示,整个系统分为四层,数据
12、表现层,业务逻辑层,数据持久层和数据库。下面我们就结合上述分层,具体来看看每一层开源框架是怎么协调工作的。数据表现层,在这一层里面,可以选择的开源框架很多,我们这里选择的是Struts,它是一个基于MVC 设计模式的框架,通过XML 格式的配置文件,很容易实现各个不同页面间的导航,但其最优秀的地方在于其是基于MVC 设计模式,结构清晰,使开发者只关注如何在Action 中如何从业务层中获取自己所需要的业务数据,其他内部的流转控制全部交由Struts 来完成。业务层是整个架构中最为核心的层次,它为表现层提供所需要的数据,具体的业务逻辑在这层实现,同时它也负责整合来自不同的数据源。采用Spring
13、 框架主要基于如下一些方面考虑:与表现层很好的分离,为表现层提供所有需要的数据,同时能够为不同的客户增加不同的表现层,在Spring 框架中我们用接口的形式提供服务,所以扩展很灵活,而且表现层的修改也不会或者很少改变业务层;降低系统的复杂性,整个系统的复杂性只与需求业务流程的复杂程度相关,不能像EJB 开发模式那么复杂;对于底层数据访问技术,采用较为高级的访问方式,采用O/R 框架来完成,把尽可能多的精力放在业务逻辑上,spring 在集成O/R 框架方面做的非常优秀,可以与不同的O/R 框架集成;spring 框架是一个轻量级的容器,其本质就是一个IoC 容器,利用这个特性,容器中的业务类就
14、不用自己动手查找资源和所依赖的对象了,而是通过声明的方式,交由容器帮其去查找和加载,这样做的方式优点非常多,首先就是不必在业务类中通过硬编码的方式指定与其相关的对象,利于实现针对接口编程,以后扩展和修改非常方便,其次是利于测试开发,传统的EJB 方式,由于其依赖环境复杂,很难实施测试,而采用spring 方式则大大不同,非常容易测试,利于提高代码质量。在数据持久层,我们没有采用JDBC 方式来访问数据库,而是采用的是Hibernate 数据持久化框架,主要考虑到在大量的业务逻辑里面嵌入SQL 语句,将给以后的维护工作带来很大的困难,而且编程效率太低,因此需要采用一种能够将我们的实体对象与表数据
15、进行相互映射的技术,来屏蔽底层的数据访问细节,也就是说在业务逻辑类中只对我们的数据类对象进行操作,如何将对象转换为表中数据交由Hibernate 来完成,这将大大降低开发难度,提高开发效率,同时采用相应的数据缓存技术,通过其底层的机制保证缓存中数据与数据库中的保持同步。3.3系统设计分析针对我们的设计目标,我们提出了多层的解决方案,在表现层采用的是目前最为成熟的开发框架Struts,业务层为Spring 框架,数据持久层采用的是Hibernate 。这个设计的核心在于业务层的Spring 框架,它能够很好的与表现层集成,对Hibernate 的支持也非常的出色,整个系统设计在开发实施以及将来的扩展维护都非常容易。4总结本文在提出了一个内容管理系统的设计方案,针对项目开发成本开销,软件的可维护,可扩展等方面的原因,提出了一个基于开源框架的多层设计方案,同时就具体的框架技术在项目中的每个层次中的作用做了详细分析,是一个值得采用的方案。参考文献:1阎宏.Java 与模式M.北京:电子工业出版,2002.2孙卫琴.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新展厅开业文案
- 筷子小班教案7篇
- 化妆品夏季促销销售方案
- 诗意温柔的文案
- 2024年卧式螺旋离心脱水机项目资金需求报告代可行性研究报告
- 【初中数学课件】华师版数学中考复习专题课件
- 《照明节能技术综述》课件
- 《FP腔的调节》课件
- 《古典主义建筑》课件
- 《数据分析你懂的》课件
- 100 米运动员的专项体能训练内容和计划
- 青少年科技创新活动和创新大赛项目指导
- (6.5)-第五章遵守道德规范 锤炼道德品质
- 国开管理英语1学习行为表现的心得
- 糖尿病中医药知识健康讲座
- 钢结构框架厂房工程施工方法及技术措施
- 挂篮验收记录表
- 中华优秀传统文化智慧树知到课后章节答案2023年下浙江金融职业学院
- 英语教师语法构造与转化分析法
- 融资租赁租金计算模板
- (全册)教学设计(教案)新纲要云南省实验教材小学信息技术四年级第3册全册
评论
0/150
提交评论