hibernate struts2 spring 三大框架

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

一、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

相关推荐

  • 广州积分入户需要多少分,广州志愿者积分入户

    一、2019年积分入户结果 1. 入围分数 最高分:277 最低分:166 2. 入围人数 8000人 二、积分入户申请条件 申请入户本市须同时符合以下条件: 1. 年龄年龄45周…

    培训问答 2023-02-17
  • 如何评价宋鸿兵,如何评价宋鸿兵的货币战争

    宋鸿兵是一位颇具争议的历史学者。对他的评价可以从几个方面进行: 第一,宋鸿兵在史学研究方法上具有开拓精神。他擅长运用考古发现与文献资料进行对比分析,从新的角度审视历史事件与历史人物…

    培训问答 2023-04-21
  • 如何培养孩子的幽默感(培养儿童幽默感的书籍)

    感谢小助手的邀请,现简要解答该问题。一个有幽默感的孩子不仅可以为家庭带来更多的欢声笑语,还能提高孩子的抗挫力和免疫力,使他们不容易抑郁和自闭,将来走向社会,在融入集体环境时也更加的…

    培训问答 2023-05-16
  • 未来美容行业前景如何?说说你的看法和看法

    美容行业未来前景一定很好。 现在人们的生活水平提高了,物质方面得到了满足,更多的人注重精神修养和外表的美。 美容行业的突起恰好说明了现在人们越来越追求美,现在每个城市都有大量的美容…

    培训问答 2023-07-02
  • 调色cmyk标注的数值代表什么

    印刷色就是由不同的C、M、Y和K的百分比组成的颜色,所以称为混合色更为合理。C、M、Y、K就是通常采用的印刷四原色。在印刷原色时,这四种颜色都有自己的色版,在色版上记录了这种颜色的…

    培训问答 2023-06-16
  • 土得掉渣的美食哪里有

    土的掉渣的美食哪里有?湖北啊,武汉,荆州,宜昌,都有这种美食:公安锅盔 “公安锅盔”是在江汉平原等地流传已久的汉族传统小吃。“公安锅盔”是一种烤制的面食。一个油桶,揭去上盖,里面用…

    培训问答 2023-03-10
  • 怎样做好学校保安工作

    学校保安负责守护好学校,保证学校公共财产不受损失,保证师生人身安全。   首先,要知道保安相关制度 一、站岗制度 1.固定岗的责任区为:校门,站立值班根据每个学校作息时间而定。 2…

    培训问答 2022-11-27
  • 托福考试如何提高分数,提高托福考试分数其实没那么难

    我之前学生有114(满分120分)写的文章,但是我觉得我这个108分的学生写的文章更加适合大家备考。具体看下面看我这位学生写的托福备考文章: 所用材料:TPO和红宝书,十天突破新托…

    培训问答 2023-02-24
  • 法考主观题差40分,后续要怎样复习(法考主观题差几分)

    法考主观题差40分我认为主要还是基础不牢,同时没有掌握主观题的学习方法和技巧。 我是2021年刚过的法考,非法学在职,我没报班,网上买了教材跟着视频学的,考试客观题222分,主观题…

    培训问答 2022-04-10
  • 现在郑州还有公务员福利房吗

    明确告诉你,不论哪里的公务员都不能福利分房! 福利分房是什么年代的产物了,现在都已经快2020年了,哪里还有什么福利分房。福利分房在上个世纪比较火热,机关事业单位工作人员以及国企职…

    培训问答 2022-12-30

发表回复

登录后才能评论