当前位置:首考文秘网>范文大全 > 公文范文 > 基于开源框架的内容管理系统

基于开源框架的内容管理系统

时间:2023-06-26 13:15:03 公文范文 来源:网友投稿

摘要:该文介绍了一个基于J2EE开源框架设计的内容管理系统,针对内容管理系统的可维护性和良好的扩展性问题,讨论了Struts、Spring、Hibernate等开源技术在解决这些问题的重要作用。

关键词:设计模式;MVC;CMS

中图分类号:TP311文献标识码:A文章编号:1009-3044(2010)10-2332-02

Based on Open Source Framework"s Content Management System

HUANG Dao-bin, YIN Rong-zhang, YE Ming-quan, ZHU Jin-hao

(Department of Computer, Wannan Medical College, Wuhu 241000, China)

Abstract: This paper describes a content management system which is based on J2EE open-source framework. We discusses the Struts, Spring, Hibernate and other open source technologies to solve these problems that the maintainability and good scalability of Content management system played an important role.

Key words: design patterns; MVC; CMS

现在的很多大型的门户网站,都是在靠系统维护人员手工在更新和修改系统页面,如果想进行网站内容管理 ,面对千变万化的信息流,没有好的后台系统支持,工作量将是十分巨大的,如果有一个好的后台系统来帮助维护人员提高效率,那将节省大量的人力物力,同时将系统维护的出错率降到最低。要实现这样一个系统一般至少要包含两大部分:后台业务子系统,主要用于内容的管理,新闻录入,论坛子系统、权限管理等等;另外一个就是前台系统。一般从头开发一个内容管理系统,开销非常大,本文提出一个基于开源技术的解决方案,所谓开源技术就是一些软件开发组织开发的一些软件,公开源代码,你可以在他们工作的基础上做少量的修改或做二次开发,从而定制我们一个完整的系统,目前在J2EE技术平台上就有一些比较成熟的开源框架技术,比如Struts,Spring,Hibernate等,用这些框架构建我们的软件系统成本开销低,开发效率高。本文首先介绍有关开源框架技术,同时给出这些开源技术中用到的一些有些设计模式[1],然后根据我们的设计目标,给出了内容管理系统的系统架构,最后就整个系统的优缺点做一个讨论。

1 开源技术简介

Struts是目前Web开发中比较成熟的一种表现层的开源框架,它采用了MVC经典设计模式,被大量J2EE开发人员所接受。它对Servlet、JSP、JavaBean等进行了封装,通过用户定义逻辑之间的跳转,实现页面信息的流转,而且用户自定义标签简化了数据表现的代码,为Web开发提供了具有高可配置性的MVC开发模式,它将Model、View和Controller分别映射到Web应用中的组件。Model由Action来构建,其本质是在这里调用业务逻辑接口,并不是所有业务逻辑在这里实现,View是由JSP和struts提供的自定义标签来实现,Controller负责控制流程,由ActionServlet和ActionMapping来完成[2]。

Spring是一个流行的开源轻型容器(light-weight container),其最核心概念是Bean工厂(Bean Factory),它能够很方便的配置、装配JAVABEAN和普通的java对象,通过IOC容器和依赖注入技术无缝的将各个协同工作的业务逻辑对象整合在一起。而且Spring提供了AOP(Aspect-Oriented Programming, 面向层面的编程)的实现,用它来提供非管理环境下申明方式的事务、安全等服务; DAO/ORM的实现方便我们进行数据库的开发;Web MVC和Spring Web提供了Java Web应用的框架或与其他流行的Web框架进行集成[5]。

Hibernate是一个免费的实现了ORM的开源Java包,是java应用程序和关系数据库之间的桥梁。负责java对象和关系数据之间的映射,其内部封装了JDBC访问数据库的细节,它使得与关系数据库打交道变得十分轻松,向业务层提供了面向对象的数据访问API[6]。

2 设计模式与IOC

设计模式是在多个项目中总结出来成熟的针对具体问题所提出的解决方案,由于在实际项目中反复检验,可以在后续的项目中结合具体情况选择并重用。设计模式在面向对象开发领域现在已经是一个非常热门的技术,总的可以分为三大类:创建型,主要与对象的创建有关;结构型,用于解决多个对象之间如何构建复合对象的方法;行为型[1]。在我们前面刚刚介绍的几种开源框架中,采用了我们三大类型设计模式中的多种,如著名的MVC模式。

控制反转(Ioc)是Spring框架的核心技术,其本质是减少业务组件之间的依赖性和耦合性。在传统的方式中,我们要调用其他业务类来协同工作,需要在代码中编写相应的代码来查找和定位相关类,由于是硬编码,测试和以后业务变更修改变动相当大,不利于开发和维护。控制反转(Ioc)就是把类之间的关联交由容器来完成,其实整个容器就相当于一个工厂,每个类需要什么都不需要自己动手去找,而是通过注入技术来完成相关类之间的依赖关系,因此采用Ioc技术非常适合实施针对接口编程,在业务类中声明依赖对象只须用接口的方式,而任何实现了该接口的类都可以相互替换,只须在相应的配置文件中声明即可,非常利于代码维护和系统扩展。

3 系统架构

在前面介绍的基础上,我们针对内容管理系统的可维护性和良好的扩展性,给出我们的设计目标,具体的设计实现,以及对整个设计的分析。

3.1 系统设计目标

传统的J2EE架构方案过于复杂,在J2EE平台中由于其复杂的应用程序和整体性能的低下,特别是软件开发,测试维护成本是相当的高,因此我们采用一种轻量级的解决方案。在开源框架领域有一个已经被很多J2EE平台开发者所接受的就是Spring技术,它支持控制反转(IOC)和AOP编程,我们就是通过SPRING技术来整合其他开源技术达到我们整个系统的目标要求:采用多层设计,并且每一层之间的扩展以及可替换性要很灵活,这利于以后整个系统的升级和维护;实现业务逻辑的代码必需与表现层的代码分开;业务层的数据整合可配置性需要灵活,方便系统扩展;对于数据保存方面,能够方面的整合来源不同的数据源。

3.2 系统设计

根据前面的有关系统的目标分析,我们结合各个开源框架的技术特点,把整个系统的设计方案实现如图1所示。

如图1所示,整个系统分为四层,数据表现层,业务逻辑层,数据持久层和数据库。下面我们就结合上述分层,具体来看看每一层开源框架是怎么协调工作的。

数据表现层,在这一层里面,可以选择的开源框架很多,我们这里选择的是Struts,它是一个基于MVC设计模式的框架,通过XML格式的配置文件,很容易实现各个不同页面间的导航,但其最优秀的地方在于其是基于MVC设计模式,结构清晰,使开发者只关注如何在Action中如何从业务层中获取自己所需要的业务数据,其他内部的流转控制全部交由Struts来完成。

业务层是整个架构中最为核心的层次,它为表现层提供所需要的数据,具体的业务逻辑在这层实现,同时它也负责整合来自不同的数据源。采用Spring框架主要基于如下一些方面考虑:与表现层很好的分离,为表现层提供所有需要的数据,同时能够为不同的客户增加不同的表现层,在Spring框架中我们用接口的形式提供服务,所以扩展很灵活,而且表现层的修改也不会或者很少改变业务层;降低系统的复杂性,整个系统的复杂性只与需求业务流程的复杂程度相关,不能像EJB开发模式那么复杂;对于底层数据访问技术,采用较为高级的访问方式,采用O/R框架来完成,把尽可能多的精力放在业务逻辑上,spring 在集成O/R框架方面做的非常优秀,可以与不同的O/R框架集成;spring框架是一个轻量级的容器,其本质就是一个IoC容器,利用这个特性,容器中的业务类就不用自己动手查找资源和所依赖的对象了,而是通过声明的方式,交由容器帮其去查找和加载,这样做的方式优点非常多,首先就是不必在业务类中通过硬编码的方式指定与其相关的对象,利于实现针对接口编程,以后扩展和修改非常方便,其次是利于测试开发,传统的EJB方式,由于其依赖环境复杂,很难实施测试,而采用spring方式则大大不同,非常容易测试,利于提高代码质量。

在数据持久层,我们没有采用JDBC方式来访问数据库,而是采用的是Hibernate数据持久化框架,主要考虑到在大量的业务逻辑里面嵌入SQL语句,将给以后的维护工作带来很大的困难,而且编程效率太低,因此需要采用一种能够将我们的实体对象与表数据进行相互映射的技术,来屏蔽底层的数据访问细节,也就是说在业务逻辑类中只对我们的数据类对象进行操作,如何将对象转换为表中数据交由Hibernate来完成,这将大大降低开发难度,提高开发效率,同时采用相应的数据缓存技术,通过其底层的机制保证缓存中数据与数据库中的保持同步。

3.3 系统设计分析

针对我们的设计目标,我们提出了多层的解决方案,在表现层采用的是目前最为成熟的开发框架Struts,业务层为Spring框架,数据持久层采用的是Hibernate。这个设计的核心在于业务层的Spring 框架,它能够很好的与表现层集成,对Hibernate的支持也非常的出色,整个系统设计在开发实施以及将来的扩展维护都非常容易。

4 总结

本文在提出了一个内容管理系统的设计方案,针对项目开发成本开销,软件的可维护,可扩展等方面的原因,提出了一个基于开源框架的多层设计方案,同时就具体的框架技术在项目中的每个层次中的作用做了详细分析,是一个值得采用的方案。

参考文献:

[1] 阎宏.Java与模式[M].北京:电子工业出版,2002.

[2] 孙卫琴.精通Struts:基于MVC的Java Web设计与开发[M].北京:电子工业出版社,2004.

[3] Alur D.J2EE核心模式[M].北京:机械工业出版社,2005.

[4] 约翰逊.Spring框架高级编程[M].蒋培,译.北京:机械工业出版社,2006.

[5] 约翰逊.Expert one-on-one J2EE Design and Development[M].魏海萍,译.北京:电子工业出版社,2003.

[6] 艾里特.精通Hibernate[M].刘平利,译.北京:机械工业出版社,2009.

推荐访问:开源 内容管理系统 框架

版权所有:首考文秘网 2015-2024 未经授权禁止复制或建立镜像[首考文秘网]所有资源完全免费共享

Powered by 首考文秘网 © All Rights Reserved.。备案号:冀ICP备15026071号-91