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

相关推荐

  • 想考一本的美院真的很难吗(想考一本美院很难吗)

    考美院,上大学,难不难?难,也不难。难在所有美院,招生规模都是比较少的,基本上都在1500-1800人之间,那么八大美院的招生计划人数加在一起,也只有1.3万人左右,这个招生量只相…

    培训问答 2023-02-07
  • 运城教育,运城哪个学校教育水平高啊

    我是山西人,不是运城人,从小就听说运城有两所神一般的学校:康杰中学和运城中学。 先说康杰中学 历史沿革 1945年4月15日,建立了“太岳行政干校第五分校”。 1945年11月,学…

    培训问答 2022-07-26
  • 篆刻培训,篆刻能自学吗

    篆刻当然可以自学,很多手艺行业都是自学成才,说到源头篆刻也是某一位自行研制出后才得到普及的,各行各业都是这样,没有谁出生就会哪门手艺艺术,都是在各种专研下琢磨出来的。 自学主要还在…

    培训问答 2022-06-30
  • 家教上门辅导孩子成绩越来越差

    要根据孩子的性格以及学习进度进行分析。多样化的选择让家长有更多的机会对孩子的学习查缺补漏。 一·如果孩子的性格偏内向,平日在学校抗拒和老师沟通,建议采取选择上门家教与网络在线辅导相…

    培训问答 2023-03-08
  • 潍坊职业学院怎么样,潍坊职业学院各方面怎么样

    潍坊职业学院(潍坊市直属高等职业学校)是2001年7月经山东省人民政府批准,由原昌潍农业学校和潍坊市职工大学合并组建的一所公办全日制普通高等职业院校。2010年11月,原潍坊第一职…

    培训问答 2022-12-29
  • 怎么帮狗狗做美容(狗狗美容文案朋友圈)

    准备美容工具 1、您要准备好给狗狗修剪毛发的工具:梳子、剪刀、电推刀、指甲刀、毛巾、宠物洗浴液,风筒等等。 2、剪刀的选择也是很有讲究的,一般来说,要选择末端刀刃比较圆的形状,否则…

    培训问答 2023-04-27
  • 影视剪辑包装前景怎么样

    剪辑影视包装前景怎么样 结合我自己的工作经验来说 前景还算不错,选择范围还算广泛。 现在很难见到专门只做影视包装得了,都是什么都要会点。 首先在专业知识你要储备许多专业技能,如 A…

    培训问答 2023-02-07
  • 搜索引擎优化培训,企业如何进行搜索引擎优化

    我们是专业网站推广的,可以给你些建议。 首先你得有一个独立的网站。如果是企业类型,网站是新注册的域名,建议你再购买一个老域名(有权重的更好)进行绑定,这样收录会和排名都会更快些。现…

    培训问答 2022-12-15
  • 街舞培训班,怎么选街舞培训班

    1.投资商首先要选择好自己所要加盟的街舞培训机构品牌,进入品牌官网,详细的了解之后,给公司留言,或者打电话详细咨询。 2.投资商通过详细的了解品牌相关的政策和条件之后,可以选择区就…

    培训问答 2022-08-12
  • 我被录取到三峡大学水利水电专业

    三峡大学是湖北省的一所省属一流学科建设高校,在三本与二本未合并之前,三峡大学是一本、二本同时招生的专业,而在一本招生的专业就是水利水电专业,这个专业是三峡大学的特色专业,也是其实力…

    培训问答 2023-07-14

发表回复

登录后才能评论