基于开源框架的内容管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于开源框架的内容管理系统
作者:黄道斌,尹荣章,叶明全,朱金好
来源:《电脑知识与技术》2010年第10期
摘要:该文介绍了一个基于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 系统设计目标