三大框架的作用

Struts2的作用

作为web层框架应该大体实现以下功能:

1.获取表单内容,并组织生成参数对象

2.根据请求的参数转发请求给适当的控制器

3.在控制器中调用业务接口

4.将业务接口返回的结果包装起来发送给指定的视图,并由视图完成处理结果的展现

5.做一些简单的校验或是国际化工作

无论是登录还是上传什么,没有其他层的协助是无法实现的,当然你也可以硬编码的来实现业务逻辑或数据库操作,这样的做法扩展性和可维护性极差

hibernate是操作数据库的一种框架,它简化了直接使用jdbc api的代码操作数据库的复杂性和冗余性

spring则完全是一种架构型的框架了,它不属于J2EE应用中的任何一个层,但它提供了对象依赖注入的思想,并且为每个层中遇到的实际问题提供了大量现成的模板类,使用这些模板类的方法很easy,大多数情况下只需要你在配置文件里配置一下就可以实现诸如事务管理或安全性控制这样的复杂问题.使用spring你的代码不依赖于框架,不依赖于具体实现,而依赖于接口,这对于实现松散耦合的架构来说是大有裨益的.spring不仅仅可以用于web应用,在普通的java应用中也可以使用spring.spring不是个复杂的框架,它的核心包很小并且具有轻量级的架构,基本上spring的核心只有2个东西:Ioc & AOP,Ioc其实就是工厂模式的一种体现,而AOP则来源AOP联盟,使用了拦截的思想...学了spring,现在写起代码觉得自己就像个白痴,有什么问题直接在配置文件里配置一下相关的模板类就OK了,它是真正为程序员减轻工作负担的框架.

Spring4.x 的作用

在SSH框假中spring充当了管理容器的角色。我们都知道Hibernate用来做持久层,因

为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语

句。Struts是用来做应用层的,他它负责调用业务逻辑serivce层。所以SSH框架的流程大致

是:Jsp页面----Struts------Service(业务逻辑处理类)---Hibernate(左到右)struts

负责控制Service(业务逻辑处理类),从而控制了Service的生命周期,这样层与层之间的

依赖和强,属于耦合。这时,使用spring框架就起到了控制Action对象(Strus中的)和

Service类的作用,两者之间的关系就松散了,Spring的Ioc机制(控制反转和依赖注入)正

是用在此处。

Spring的Ioc(控制反转和依赖注入)

控制反转:就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直

接操控。

依赖注入:组件之间的依赖关系由容器在运行期决定 ,由容器动态的将某种依赖关系注

入到组件之中。

从上面我们不难看出:从头到尾Action仅仅是充当了Service的控制工具,这些具体的

业务方法是怎样实现的,他根本就不会管,也不会问,他只要知道这些业务实现类所提供的

方法接口就可以了。而在以往单独使用Struts框架的时候,所有的业务方法类的生命周期,

甚至是一些业务流程都是由Action来控制的。层与层之间耦合性太紧密了,既降低了数据访

问的效率又使业务逻辑看起来很复杂,代码量也很多。,Spring容器控制所有Action对象和

业务逻辑类的生命周期,由与上层不再控制下层的生命周期,层与层之间实现了完全脱耦,

使程序运行起来效率更高,维护起来也方便。

使用Spring的第二个好处(AOP应用):

事务的处理:

在以往的JDBCTemplate中事务提交成功,异常处理都是通过Try/Catch 来完成,而在

Spring中。Spring容器集成了TransactionTemplate,她封装了所有对事务处理的功能,

包括异常时事务回滚,操作成功时数据提交等复杂业务功能。这都是由Spring容器来管理,

大大减少了程序员的代码量,也对事务有了很好的管理控制。Hibernate中也有对事务的管

理,hibernate中事务管理是通过SessionFactory创建和维护Session来完成。而Spring对

SessionFactory配置也进行了整合,不需要在通过hibernate.cfg.xml来对 SessionaFactory进行设定。这样的话就可以很好的利用Sping对事务管理强大功能。避免

了每次对数据操作都要现获得Session实例来启动事务/提交/回滚事务还有繁琐的

Try/Catch操作。这些也就是Spring中的AOP(面向切面编程)机制很好的应用。一方面使

开发业务逻辑更清晰、专业分工更加容易进行。另一方面就是应用Spirng AOP隔离降低了

程序的耦合性使我们可以在不同的应用中将各个切面结合起来使用大大提高了代码重用度。

Hibernate的主要功能及用法

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。

Struts2的作用

作为web层框架应该大体实现以下功能:

1.获取表单内容,并组织生成参数对象

2.根据请求的参数转发请求给适当的控制器

3.在控制器中调用业务接口

4.将业务接口返回的结果包装起来发送给指定的视图,并由视图完成处理结果的展现

5.做一些简单的校验或是国际化工作

无论是登录还是上传什么,没有其他层的协助是无法实现的,当然你也可以硬编码的来实现业务逻辑或数据库操作,这样的做法扩展性和可维护性极差

hibernate是操作数据库的一种框架,它简化了直接使用jdbc api的代码操作数据库的复杂性和冗余性

spring则完全是一种架构型的框架了,它不属于J2EE应用中的任何一个层,但它提供了对象依赖注入的思想,并且为每个层中遇到的实际问题提供了大量现成的模板类,使用这些模板类的方法很easy,大多数情况下只需要你在配置文件里配置一下就可以实现诸如事务管理或安全性控制这样的复杂问题.使用spring你的代码不依赖于框架,不依赖于具体实现,而依赖于接口,这对于实现松散耦合的架构来说是大有裨益的.spring不仅仅可以用于web应用,在普通的java应用中也可以使用spring.spring不是个复杂的框架,它的核心包很小并且具有轻量级的架构,基本上spring的核心只有2个东西:Ioc & AOP,Ioc其实就是工厂模式的一种体现,而AOP则来源AOP联盟,使用了拦截的思想...学了spring,现在写起代码觉得自己就像个白痴,有什么问题直接在配置文件里配置一下相关的模板类就OK了,它是真正为程序员减轻工作负担的框架.

Spring4.x 的作用

在SSH框假中spring充当了管理容器的角色。我们都知道Hibernate用来做持久层,因

为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语

句。Struts是用来做应用层的,他它负责调用业务逻辑serivce层。所以SSH框架的流程大致

是:Jsp页面----Struts------Service(业务逻辑处理类)---Hibernate(左到右)struts

负责控制Service(业务逻辑处理类),从而控制了Service的生命周期,这样层与层之间的

依赖和强,属于耦合。这时,使用spring框架就起到了控制Action对象(Strus中的)和

Service类的作用,两者之间的关系就松散了,Spring的Ioc机制(控制反转和依赖注入)正

是用在此处。

Spring的Ioc(控制反转和依赖注入)

控制反转:就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直

接操控。

依赖注入:组件之间的依赖关系由容器在运行期决定 ,由容器动态的将某种依赖关系注

入到组件之中。

从上面我们不难看出:从头到尾Action仅仅是充当了Service的控制工具,这些具体的

业务方法是怎样实现的,他根本就不会管,也不会问,他只要知道这些业务实现类所提供的

方法接口就可以了。而在以往单独使用Struts框架的时候,所有的业务方法类的生命周期,

甚至是一些业务流程都是由Action来控制的。层与层之间耦合性太紧密了,既降低了数据访

问的效率又使业务逻辑看起来很复杂,代码量也很多。,Spring容器控制所有Action对象和

业务逻辑类的生命周期,由与上层不再控制下层的生命周期,层与层之间实现了完全脱耦,

使程序运行起来效率更高,维护起来也方便。

使用Spring的第二个好处(AOP应用):

事务的处理:

在以往的JDBCTemplate中事务提交成功,异常处理都是通过Try/Catch 来完成,而在

Spring中。Spring容器集成了TransactionTemplate,她封装了所有对事务处理的功能,

包括异常时事务回滚,操作成功时数据提交等复杂业务功能。这都是由Spring容器来管理,

大大减少了程序员的代码量,也对事务有了很好的管理控制。Hibernate中也有对事务的管

理,hibernate中事务管理是通过SessionFactory创建和维护Session来完成。而Spring对

SessionFactory配置也进行了整合,不需要在通过hibernate.cfg.xml来对 SessionaFactory进行设定。这样的话就可以很好的利用Sping对事务管理强大功能。避免

了每次对数据操作都要现获得Session实例来启动事务/提交/回滚事务还有繁琐的

Try/Catch操作。这些也就是Spring中的AOP(面向切面编程)机制很好的应用。一方面使

开发业务逻辑更清晰、专业分工更加容易进行。另一方面就是应用Spirng AOP隔离降低了

程序的耦合性使我们可以在不同的应用中将各个切面结合起来使用大大提高了代码重用度。

Hibernate的主要功能及用法

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。


相关文章

  • COSO:从内控向风控的嬗变 --首席财务官
  • COSO:从内控向风控的嬗变 企业成功最终表现为卓越的财务业绩,企业的失败最终也体现在财务上的失败.因此,财务风险控制是企业风险控制最具综合性的内容. 企业的成功依赖于正确的战略和强有力的执行力度,相应地,企业的风险包括战略制订风险和执行中 ...查看


  • 三大构成--平面构成(3)
  • 第四章 平面构成的形式 第一节 骨骼 一 骨骼的概念,性质,作用 骨格是支撑构成形象的最基本的组合形式. 骨骼使形象有秩序地经过人为的构想,排列出各种宽窄不 同的框架空间,把基本形输入到设定的骨格中以各种不同 的编排来构成设计. 骨骼既起到 ...查看


  • 中国国民经济核算体系的扩展与延伸
  • 作者:李金华 经济研究 2008年06期 JEL Classification:C16,M41 一.引言 联合国统计委员会及相关机构曾向世界各国推荐过4个核算体系:<国民经济核算体系>(System of National Ac ...查看


  • 高中历史必修一学案框架
  • 第一课:商周时期的政治制度 一.从禅让到王位世袭 1.夏朝时间及建立者 2.中国早期政治制度的特点 二.等级森严的分封制 西周时间及建立者 1.目的 2.内容 3.分封对象 4.分封的等级 5.诸侯的义务 6.诸侯的权利 7.评价(积极.消 ...查看


  • 建筑都有哪些基本常识
  • 建筑都有哪些基本常识? 1. 什么是容积率?答:容积率是项目总建筑面积与总用地面积的比值.一般用小数表示. 2. 什么是建筑密度?答:建筑密度是项目总占地基地面积与总用地面积的比值.一般用百分数表示. 3. 什么是绿地率(绿化率)? 答:绿 ...查看


  • 情感目标与评价体系的建构系列论文
  • 项目信息 对应的项目名称:情感目标与评价体系的建构 学科:心理学 项目类别:教育部人文社会科学研究一般项目 项目负责人:卢家楣 项目依托高校:上海师范大学 成果信息 成果名称:情感目标与评价体系的建构系列论文 作者(含主要成员):卢家楣.刘 ...查看


  • 建筑基本常识问答大全完整精美版
  • 本文由AA利利贡献建筑基本常识问答大全1. 什么是容积率?答:容积率是项目总建筑面积与总用地面积的比值.一般用小数表示.2. 什么是建筑密度?答:建筑密度是项目总占地基地面积与总用地面积的比值.一般用百分数表示.3. 什么是绿地率(绿化率) ...查看


  • 房屋建筑的一些基本概念
  • 1. 什么是容积率? 答:容积率是项目总建筑面积与总用地面积的比值.一般用小数表示. 2. 什么是建筑密度? 答:建筑密度是项目总占地基地面积与总用地面积的比值.一般用百分数表示. 3. 什么是绿地率(绿化率)? 答:绿地率是项目绿地总面积 ...查看


  • 三大框架的运行原理
  • 一:Struts 对于采用Struts应用的web程序,在web应用启动时web.xml就会加载并初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把他们存放到各种配置对象中 ...查看


热门内容