关于struts2,hibernate,spring,mybatis框架的分析

本文介绍了Struts2和SpringMVC这两个流行的Java Web框架。Struts2以其丰富的标签库和强大的拦截器机制著称,而SpringMVC则在安全性、配置简化方面表现突出。文章还对比了两者的开发模式、性能表现以及与Spring框架的整合情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(借鉴kwmnitw及网上资料)

Struts2 是一个相当强大的Java Web开源框架,是一个基于POJO的Action的MVC Web框架

      优点:

           1. 实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现。

         2. 丰富的标签库,大大提高了开发的效率。

         3.提供丰富的拦截器实现。

           4.通过配置文件,就可以掌握整个系统各个部分之间的关系。

         5. 异常处理机制,只需在配置文件中配置异常的映射,即可对异常做相应的处理。

         6. 可扩展性高。Struts2的核心jar包中由一个struts-default.xml文件,在该文件中设置了一些默认的bean,resultType类型,默认拦截器栈等,所有这些默认设置,用户都可以利用配置文件更改,可以更改为自己开发的bean,resulttype等。因此用户开发了插件的话只要很简单的配置就可以很容易的和Struts2框架融合,这实现了框架对插件的可插拔的特性。

          面向切面编程的思想在Strut2中也有了很好的体现。最重要的体现就是拦截器的使用,拦截器就是一个一个的小功能单位,用户可以将这些拦截器合并成一个大的拦截器,这个合成的拦截器就像单独的拦截器一样,只要将它配置到一个、Action中就可以。

Hibernate:持久层框架

                     orm (对象关系映射) 框架


   优点:1.对jdbc进行了封装,可以使用面向对象的形式操作数据库

    2.所有的SQL语句由框架生成,是一个完全自动化的框架

    3.屏蔽了所有关系型数据库的底层差异性




Spring : 一个轻量级的DI和AOP容器框架,核心是控制反转(IoC)和面向切面(AOP)


      优点:

1.使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑

2.可以提供众多服务,事务管理,WS等。

3.AOP的很好支持,方便面向切面编程。

4.对主流的框架提供了很好的集成支持,如hibernate,Struts2,JPA等

5.Spring DI机制降低了业务对象替换的复杂性。

6.Spring属于低侵入,代码污染极低。

7.Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部



SpringMVC的优点:

  1. 与Spring框架天生整合,无框架兼容问题

  2. 与Struts2相比安全性高

  3. 配置量小、开发效率高
springmvc和struts2的区别 

1、springmvc基于 方法 开发的,struts2基于 开发的。
springmvc将url和controller方法映射。映射成功后springmvc生成一个Handler对象,对象中只包括了一个method。方法执行结束,形参数据销毁。

struts2的action类中的所有方法用的都是action类中的 成员变量 ,一旦方法变得很多的时候,我们就会不知道action类中那么多成员变量是给那个方法去使用的。十分混乱。
但是springmvc的所有参数都是定义为方法的 形参 ,这样使用什么方法就将参数注入至对应方法的形参,所以springmvc的controller开发类似service开发。

2、springmvc可以进行单例开发,并且建议使用 单例 开发,struts2通过类的成员变量接收参数, 无法使用单例 ,只能使用多例。

3、经过实际测试,struts2速度慢,在于 使用struts标签 ,如果使用struts建议使用jstl。

最后我们无法实际定义springmvc与struts 到底谁好谁坏 ,只能说struts早期由于用的比较多,它的漏洞就比较多。建议如果使用struts,就使用最新的包,因为以前的可能会有漏洞。但springmv目前几乎没有漏洞,这就是springmvc最近几年开始流行起来的原因,再有一个springmvc是基于方法开发的,更接近于service开发。


MyBatis的优点:
  1. 不需要重新学习hibernate框架,在掌握sql的基础上就可以上手;

  2. 不需要配置实体类与数据表之间的映射关系;

转自http://blog.csdn.net/acmman/article/details/47183585
    http://blog.csdn.net/kwmnitw/article/details/69397473
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值