您的位置:首页 > 编程语言 > Java开发

Spring、Struts、Hibernate框架之间的关系是什么以及怎么处理

2016-04-05 21:17 691 查看
Java开源--持久层框架Hibernate

Hibernate是一个开放源代码的对象关系映射框架。

对JDBC进行了非常轻量级的对象封装,使Java程序员可以随心所欲地使用对象编程思维来操纵数据库,

Hibernate持久化对象是基于简单的Java对象(Plain Old Java Objects)以及Java对象集合。

Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP

的Web应用中使用,最具有革命意义的是,Hibernate可以应用EJB的J2EE架构中取代CMP,

完成数据库持久化的重任。

注:

不要将持久化层逻辑与视图表现层逻辑或者业务逻辑层混合在一起。

要避免正在JSP等视图表现层组件直接访问数据库,将数据持久代码都放在持久层中,

这样程序更具有柔韧性且可以灵活地改变而不会影响到其他层。

举一个例子来讲:

如果将Hibernate用其他ORM框架(如JDO或IBATIS)来替换,只需要修改持久层,而不需要修改其他层的代码。

Java开源--Web框架Struts

在视图表现层,采用Struts框架构建Java Web应用程序。

Web应用程序不同于传统上的网站,这些网站通常仅提供静态页面,而Web应用程序可以和数据交互,

当用户与系统交互的时候,业务逻辑可以给用户一个用户化的响应。

在Web应用程序发展初期,Web应用程序通常是基于JSP(Java Server Pages)的,

使用JSP编写代码时通常读取数据库、页面设计代码以及控制流程代码都混合在一起

(维护过于复杂,亟待优化,尤其是大型项目)。

MVC(Model-View-Controller)体系结构的出现

Model表示业务逻辑或者是数据库代码,View代表页面设计代码,而Model本质上是一个Servlet,

将客户请求转发到相应的Action类。

Struts是一个为开发基于模型(Model)-视图(View)-控制器(Controller)模式应用框架的开源框架。

Struts提供了什么功能:

1、管理用户的请求,做出相应的响应

2、提供一个流程控制器,委派调用业务逻辑和其他上层处理

3、处理异常

4、装配需要显示的数据模型

5、执行页面验证

下面所提及的虽然Struts会涉及,但是不应该在视图层中出现。在视图层中引入这些代码,后期维护艰难。

6、直接与数据库通信的代码

7、系统的业务逻辑以及验证代码

8、事务处理

Java开源--J2EE框架Spring

Spring是一个轻量级的J2EE框架。

核心是一个轻量级容器,实现IOC模式的容器,本身是一个全方位的整合框架,在Spring框架下可实现

对多个子框架的组合。Spring的核心即IoC/DI的容器,可以为设计人员完成各个组件之间的依赖关系的注入,

使组件之间的依赖性减小,提高了组件的重用性,容器特性使组件可以轻易地加入和脱离框架。

Spring的另一个方面使支持AOP,然而AOP框架知识Spring支持的其中一种框架,所以说Spring框架是AOP框架

并不是一种恰当的描述,但是Spring对AOP的支持使人们更加关注于Spring的AOP方面的能力,也成了Spring的

一大特色。

此外,Spring提供了一个自己的MVC Web框架的解决方案,但Spring并不要求程序员一定要使用该MVC Web框架,

而是可以使用自己所熟悉的MVC Web框架与Spring结合,如Struts Webwork等,它们都可以与Spring整合而

成为适合的解决方案。

Spring还提供其他方面的整合,比如持久化方面的整合,JDBC、O/R Mapping工具、事务处理等,Spring自己也做了多方面整合的努力,因此Spring是一个全方位的框架。



最后:

架构采用多层非分布式的结构,除数据库这一层外,可以分为表现层(Presentation Layer)、业务逻辑层(Bussiness Logic Layer)和数据持久层(Persistence Layer),这3层将存在于同一个Web容器中,

作为一个整体提供J2EE服务。

定义良好的接口可以相对隔离每一层的职责,使应用更简单,并且有很好的伸缩性。数据持久层是介于

业务逻辑层和数据库层之间的桥梁,它封装了与数据库层交互的逻辑,利用ORM(对象关系映射)技术可以

完全实现面向对象的逻辑处理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: