您所在的位置:开发 > 架构&设计 > 基于Struts和Hibernate软件架构实现基金管理信息系统(1)

基于Struts和Hibernate软件架构实现基金管理信息系统(1)

2007-01-02 16:56 邓梅/张焕水 计算机与信息技术 字号:T | T
一键收藏,随时查看,分享好友!

本文详细介绍了当前流行的开源框架Struts和Hibernate,将两者结合起来设计并实现了一个基于Web的基金信息管理系统。在MVC架构中,Hibernate实现模型部分(数据持久层),Struts实现视图和控制器部分,这种设计模式使系统在开发效率、可维护性和可扩展性方面都有很好的改进。

AD:

引言
 
开发过程中一个优秀的框架可以极大的提高开发效率。随着Web开发技术的日趋成熟,在Web开发领域出现了一些现成的优秀的框架,开发者可以直接使用它们,Struts与Hibernate就是两种比较成功的框架。Struts框架运用MVC模式开发使Web应用变得很灵活,但Struts在Model部分的实现并不理想,而O/R Mapping 产品hibernate将关系型数据库的数据对象化,可作为持久层的解决方案。Struts和Hibernate框架整合则很好地实现了控制流、业务调用、表示这三者的分离,使系统在开发效率、可维护性、可扩展性方面都有良好的改进。本文的基金信息管理系统表现层采用了Struts,数据持久层选择了Hibernate,业务逻辑层则用普通java对象,从而开发出功能强大而又灵活的基金信息管理系统。文中还着重阐述了基于Struts和Hibernate架构实现基金信息管理系统的方法和关键技术。

1、用Struts框架实现MVC

模型-视图-控制器(Model-View-Controller,简称MVC)是一种目前广泛流行的软件开发设计模式。“Model”代表应用的业务逻辑,“View”代表应用的表示,“Controller”提供应用的处理过程控制。通过这个设计模型,可以把应用逻辑、处理过程和显示逻辑分成不同的组件实现,这些组件可以进行交互和重用。
 
模型层负责表达和访问商业数据,执行商业逻辑和操作。在模型层变化的时候,它通知视图层,并提供后者访问自身状态的能力,同时控制层也可以访问其功能函数以完成相关的任务。视图层负责显示模型层的内容,它从模型层取得数据并指定这些数据如何被显示出来。在模型层变化的时候,它将自动更新。另外视图层也会将用户的输入传送给控制器。控制器负责定义应用程序的行为。它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。
 
Struts框架是实现MVC模式的一个应用框架,它由一组相互协作的组件、Servlet以及JSP TagLib组成。Struts的核心组件有ActionServlet、Action、ActionForm、ActionMapping、ActionForward及TagLib、配置文件等。其中控制器由ActionServlet来实现,模型由Action和ActionForm来实现,视图则由JSP结合JSP TagLib来实现。

2、对象关系映射工具Hibernate

Hibernate是一种实现对象和关系之间映射(Object Relation Mapping)的框架。它对JDBC进行了轻量级的对象封装,使得Java程序员可以使用面向对象编程思维来操作关系数据库。在多层结构的应用中,业务层和数据层之间存在一个持久层,它负责应用到数据库的数据存储,数据的检索和更新。持久层的实现技术包括JDBC、实体Beans、JDO以及Hibernate等,但是JDBC中数据访问对象和SQL语句直接绑定在一起降低了可维护性,且不支持继承和多态。
 
EJB不支持继承和多态而且还需要额外的EJB容器。相比之下Hibernate则是一个非常好的选择,目前的应用系统大多使用关系数据库,在做设计和开发时又是面向对象的方式,这时就可以选用Hibernate来实现对象、关系之间的映射和数据的持久化。而且Hibernate拥有一种功能非常强大的查询语言(HQL),这种语言与SQL非常相似,便于掌握。
 
在应用Hiberante框架时,首先编写O/R映射描述文件,完成对象、关系数据库之间的映射。持久对象可以根据映射文件生成,然后编写业务逻辑类。这些JavaBean实现了具体的业务逻辑,也封装了对Hibernate的访问。Hiberante利用数据库以及其他一些配置文件如hibernate.properties,XML Mapping等,为应用程序提供数据持久服务。

3、基于Struts和Hibernate框架构建的基金信息管理系统

通过前面的介绍,Struts和Hibernate都具有自己的优点和不足,如果将两者结合起来,通过Struts技术来降低M—V—C各层之间的耦合性,而利用Hibernate架构来降低业务模型部分的开发难度。结合之后的好处是采用Struts和Hibernate结合的应用框架开发出来的信息系统无论在整体的架构上还是在局部的复杂业务模型中都得到了更低的耦合性,它们的灵活性与可维护性也得到了提高,从而消除了单独使用这些架构开发系统的不足。
 
本系统采用的Struts+Hibernate构架如图1所示[5]。在这个方案中,视图层是采用JSP技术结合Struts强大的TagLib来实现;业务层的核心部件是控制器,它由Struts的控制组件ActionServlet、ActionMapping及Action来实现,业务层还包含业务逻辑类,它由JavaBean来实现。当然,这些JavaBean里封装了与Hibernate的交互关系,业务层通过模型层来实现与数据库资源的交流,这一部分工作由Hibernate来做。最底层是关系数据库。
 
 
图1:系统的应用框架

4、使用Struts和Hibernate架构实现基金信息管理系统

随着技术的进步和企业管理要求的提高,办公自动化系统逐步发展到了以“知识管理”为核心的办公自动化系统,本项目的提出者为深圳市某一基金公司。
 
本系统在基金办公的自动化、网络化的基础之上,再实现基金公司内部及时通讯,提高基金公司员工的沟通能力;并在统一的系统平台下,连接基金公司各类信息系统和各类资源,是企业内部进行信息交流和管理的平台。本系统采用Struts和Hibernate框架结合进行Web应用程序开发,从而有效的保证系统的可交换性、可维护性、可扩展性和可移植性。
 
本系统主要由我的工作台、我的办公室、办公直通车、信息中心、研究平台、公司论坛、系统管理几个模块组成。系统的总体架构如图2所示。
 
采用Struts构建系统,系统中的每个模块都有一个自己的配置文档,以控制该模块的流程,每个模块除了业务逻辑不一样之外,采用Struts和Hibernate架构来实现模块的技术与过程完全一样。下面仅就研究平台模块中的基金净值子模块为例进行说明。用户登陆该模块,可以浏览公司的基金最新净值列表,并可根据基金代码、基金名称查询某支基金的历史净值和基金净值走势图。
 
 
图2:基金信息管理系统结构图

内容导航



分享到:

  1. 彻底透视CDN痛点,互联网老兵聊聊CDN的那些事儿!
  2. 3行Python代码完成人脸识别

热点职位

更多>>

热点专题

更多>>

读书

计算机网络技术
本书是为北大燕工教育研究院编写的计算机网络技术的学习教材。它以实际教学大纲为依据,全面系统的介绍了计算机网络技术知识

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 51CTO学院