hibernate struts2 spring 三大框架

最近几年Java一直名列最受欢迎的编程语言榜前,而在Java开发中Struts、Hibernate和Spring这三流行框架常常起了关键作用。因此本文将对比这三种Java流行框架,分析它们的产生和各自的优缺点。了解了这些,学习起来也更得心应手!

hibernate struts2 spring 三大框架图1

一、Struts、Hibernate和Spring的产生

1、Struts

传统的Java Web应用程序是采用JSP+Servlet+Javabean来实现的,这种模式实现了最基本的MVC分层,使的程序结构分为几层,有负责前台展示的JSP、负责流程逻辑控制的Servlet以及负责数据封装的Javabean。但是这种结构仍然存在问题:如JSP页面中需要使用<%%>符号嵌入很多的Java代码,造成页面结构混乱,Servlet和Javabean负责了大量的跳转和运算工作,耦合紧密,程序复用度低等等。

为了解决这些问题,出现了Struts框架,它是一个完美的MVC实现,它有一个中央控制类(一个Servlet),针对不同的业务,我们需要一个Action类负责页面跳转和后台逻辑运算,一个或几个JSP页面负责数据的输入和输出显示,还有一个Form类负责传递Action和JSP中间的数据。JSP中可以使用Struts框架提供的一组标签,就像使用HTML标签一样简单,但是可以完成非常复杂的逻辑。从此JSP页面中不需要出现一行<%%>包围的Java代码了。

2、Hibernate

可是所有的运算逻辑都放在Struts的Action里将使得Action类复用度低和逻辑混乱,所以通常人们会把整个Web应用程序分为三层,Struts负责显示层,它调用业务层完成运算逻辑,业务层再调用持久层完成数据库的读写。

使用JDBC连接来读写数据库,我们最常见的就是打开数据库连接、使用复杂的SQL语句进行读写、关闭连接,获得的数据又需要转换或封装后往外传,这是一个非常烦琐的过程。

这时出现了Hibernate框架,它需要你创建一系列的持久化类,每个类的属性都可以简单的看做和一张数据库表的属性一一对应,当然也可以实现关系数据库的各种表件关联的对应。当我们需要相关操作是,不用再关注数据库表。我们不用再去一行行的查询数据库,只需要持久化类就可以完成增删改查的功能。使我们的软件开发真正面向对象,而不是面向混乱的代码。我的感受是,使用Hibernate比JDBC方式减少了80%的编程量。

3、Spring

现在我们有三个层了,可是每层之间的调用是怎样的呢?比如显示层的Struts需要调用一个业务类,就需要new一个业务类出来,然后使用;业务层需要调用持久层的类,也需要new一个持久层类出来用。通过这种new的方式互相调用就是软件开发中最糟糕设计的体现。简单的说,就是调用者依赖被调用者,它们之间形成了强耦合,如果我想在其他地方复用某个类,则这个类依赖的其他类也需要包含。程序就变得很混乱,每个类互相依赖互相调用,复用度极低。如果一个类做了修改,则依赖它的很多类都会受到牵连。 为此,出现Spring框架。

Spring的作用就是完全解耦类之间的依赖关系,一个类如果要依赖什么,那就是一个接口。至于如何实现这个接口,这都不重要了。只要拿到一个实现了这个接口的类,就可以轻松的通过xml配置文件把实现类注射到调用接口的那个类里。所有类之间的这种依赖关系就完全通过配置文件的方式替代了。所以Spring框架最核心的就是所谓的依赖注射和控制反转。

现在的结构是,Struts负责显示层,Hibernate负责持久层,Spring负责中间的业务层,这个结构是目前国内最流行的Java Web应用程序架构了。另外,由于Spring使用的依赖注射以及AOP(面向方面编程),所以它的这种内部模式非常优秀,以至于Spring自己也实现了一个使用依赖注射的MVC框架,叫做Spring MVC,同时为了很好的处理事物,Spring集成了Hibernate,使事物管理从Hibernate的持久层提升到了业务层,使用更加方便和强大。

二、Struts、Hibernate和Spring的优点

1、struts

为了更详细地阐述现代软件工程师广泛使用的Java框架,这里我们为大家介绍ApacheStruts1的后续版本Struts2。Struts2用于构建当代JavaEEWeb应用程序。Apache软件基金会为开发人员提供了一个广泛的工具,用于创建企业级面向Web的应用程序,开发过程的优化贯彻始终,甚至连后期维护也囊括其中,到最终点优化开发过程以及后期维护。如果您在为高负载系统(如广播门户)发愁,那么Struts将会是你的不二选择。

由于Struts2实现了Action类(普通POJO对象),所以测试编写代码所需的工作量较少。使用框架API,耦合变得更容易,有助于调整拦截器。

2、Hibernate

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

大多数开发机构经常采取创建各自独立的数据持久层。一旦底层的数据结构发生改变,那么修改应用的其余部分使之适应这种改变的代价将是十分巨大的。Hibernate适时的填补了这一空白,它为Java应用提供了一个易用的、高效率的对象关系映射框架。hibernate是个轻量级的持久性框架,功能却非常丰富。

虽然Hibemate不在RebelLabs的排行榜中,但它仍是值得一提的Java框架。这个映射Java框架解决了对象和关系不匹配的问题,采用持续的数据库访问操作来代替高层次的对象处理功能。每个企业的应用程序都是不同的,所以Hibernate配备了一个强大啊的功能套件,帮助后端开发人员微调数据访问层。这是一个高级的ORM框架,允许您对Java对象(实体)执行数据库操作,利用Hibernate缓存将数据从Java环境持久化到数据库是一个持久化的概念。

3、Spring

它是一个开源的项目,而且目前非常活跃;它基于IoC(Inversion of Control,反向控制)和AOP的构架多层j2ee系统的框架,但它不强迫你必须在每一层 中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;它实现了很优雅的MVC,对不同的数据访问技术提供了统一的 接口,采用IoC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现Transcation Managment,等等。

Spring以绝对优势登顶不是没有理由的,它之所以能够成为最知名的Java框架,主要是因为:

1.使用POJO简化测试数据的注入。

2.增强的模块化,使代码拥有更好的可读性。

3.不同模块之间解耦合。

4.灵活应用依赖注入(DI)。

三、Struts、Hibernate和Spring的的缺点

1、struts

Taglib是Struts的一大优势,但对于初学者而言,却需要一个持续学习的过程,甚至还会打乱你网页编写的习惯,但是,当大家习惯了它时,你会觉得它真的很棒。

Struts将MVC的Controller一分为三,在获得结构更加清晰的同时,也增加了系统的复杂度。

ActionForms使用不便、无法进行单元测试(StrutsTestCase只能用于集成)

2、Hibernate

它限制大家所使用的对象模型。(例如,一个持久性类不能映射到多个表)其独有的界面和可怜的市场份额也让人不安,尽管如此,Hibernate 还是以其强大的发展动力减轻了这些风险。其他的开源持久性框架也有一些,不过都没有 Hibernate 这样有市场冲击力。

3、Spring

使用人数不多、jsp中要写很多代码

以上就是我整理的Java流行框架Struts、Hibernate和Spring对比分析,希望可以帮助到大家。还想深入学习的同学可以上千锋武汉官网观看教学视频学习。

首先感请,打牢Java基础知识,之后下载demo案例或者视频资料,每天按时看部分源码及理论知识。学习一种框架最先需要知道的是为什么需要使用这个框架,任何一个框架的发明都是为了解决编程中的一些疑难问题,比如hibernate或者其他框架的入门章节中,首先介绍的是介绍框架的理念和优势。

如果需要理解这些理念和优势,那么需要了解不使用这个框架之前是怎么处理的,才能知道框架做了那一些改进操作。

针对Spring的学习第一步就是理解IOC和AOP控制反转和依赖注入,其次学习SpringMVC轻量级框架。使用的是Java EE开发理解SpringMVC框架前提就是没在使用前是怎么实现的原理。

Struts是一个Java Web MVC开发框架。

模型Model用于封装与业务逻辑相关的数据和数据处理方法视图

View是数据的HTML展现控制器

Controller负责响应请求,协调Model和View

Model,View和Controller的分开,是一种典型的关注点分离的思想,不仅使得代码复用性和组织性更好,使得Web应用的配置性和灵活性更好。

MVC开发模式下,Java Web开发会遇到URL路由、模板渲染、表单绑定/提交/验证、Session封装、权限验证、国际化等一系列通用的问题,而MVC框架会将这些通用问题都封装进框架中,你在应用中根据自己的场景进行简单的配置和编码即可,MVC框架就能帮你处理好一切,可以极大地简化代码。

Hibernate是一个Java ORM开发框架

ORM是Object Relation Mapping的缩写,顾名思义,即对象关系映射。ORM是一种以面向对象的方式来进行数据库操作的技术。Web开发中常用的语言,都会有对应的ORM框架。而Hibernate就是Java开发中一种常用ORM框架,另一个现在流行的ORM框架是Mybatis。

原创文章,作者:普尔小编,如若转载,请注明出处:http://www.puerpx.cn/pxwd/3692.html

(0)
上一篇 2022-07-31 上午11:39
下一篇 2022-07-31 下午12:09

相关推荐

  • 嘉兴成教学院,嘉兴学院怎么样好不好

    嘉兴最强属嘉院,力争上游动作多,商院医科自骄傲,未来辉煌有可期。 作为嘉兴最好的大学,嘉兴学院在全国各省份,本科一批和本科二批都有招生,最好的学院自然是商学院和医学院这两大学院,前…

    2022-10-30
  • 高中暑假补习班,南宁高中暑假辅导班

    前两天,一放假,就接到一个好朋友、同事物理老师老李的电话。他压低声音说:“假期有空吗?帮我的朋友家孩子补补语文,人家可是久仰大名,你看如何?” 我惊喜而又怃然。惊喜的是有人也开始找…

    2022-09-13
  • 小学生素质报告册家长意见怎么写

    现在每个小学生都有一本综合素质报告册,每一个学期结束,学校填的内容由班主任完成,期中有一栏为家长意见,家长看完学校的反馈情况后,应根据学生在家的实际表现实际情况填写。通常包含一下内…

    培训问答 2023-04-02
  • 会计入门难初级会计师薪酬如何

    决定会计人员薪酬的变量有很多,有行业的因素,有地域的因素,有企业的因素,也有自身能力的因素。但不管怎样强调其复杂性,能力与本领高的会计整体上能获得更高的薪酬。 根据会计岗位职责不同…

    培训问答 2023-06-10
  • 开宠物用品店的市场调研分析及管理常识怎么写

      眼下,喜欢宠物的人越来越多,和宠物相关的市场需求也在慢慢扩大。如果您热爱宠物,手里又有点资金,也许早就在心里酝酿着如何投资开一家宠物用品店了吧。所谓有备无患,您不妨先看看投资一…

    2023-05-25
  • 大学英语四级考试做题流程,大学英语四级考试练习推荐

    英语对于我们来说从小到大的英语考试中考察过无数回。大学英语四级考试的写作步骤我总结了以下几点。   1.仔细审题。   分析题目所包含的内容和信息,再确定文章属于哪一种体裁,思考表…

    2023-01-21
  • 山西大二学生补考作弊被抓后坠亡

    看到这个消息,感觉到很沉痛!一个大学生会因为考试作弊被抓,而选择跳楼自杀,这让人唏嘘不已!家人的悲痛难以想象! 痛定思痛,沉痛没有任何意义,不过如果能从中引发一些思考,我想对更多的…

    2023-06-04
  • 你看过拍得最真实的电影是什么

    《中国机长》 这是一件真实案例,2018年5月14日由重庆飞往拉萨的3U8633航班紧急迫降。 清晨,由重庆飞往拉萨的3U8633航班在飞行了40分钟左右的时候,飞机右前挡风玻璃突…

    2023-01-03
  • 原画课程:原画设计是不是很难学呢

    很多初学者都觉得绘画是一种比较难的学科,但其实只要够勤奋,多练习的话,你就会发现原来绘画是那么容易上手的一件事情啦。 不难~有心学就不会难,原画需要基础的,1:素描基础,色彩基础,…

    2022-04-19
  • 学化妆怎么样,学化妆有前途吗?对这行业你有什么看法吗

    学习化妆,个人觉得还是不错的,发表下我的个人观点,希望对你了解这个化妆有所帮助。 方法/步骤 1/7 学化妆最开始的就是画眉,在纸上,有的人问我,她之前是学美术的,问这个对化妆有什…

    2022-09-01

发表回复

登录后才能评论