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中就可以。
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的优点:
- 与Spring框架天生整合,无框架兼容问题
- 与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的优点:
- 不需要重新学习hibernate框架,在掌握sql的基础上就可以上手;
- 不需要配置实体类与数据表之间的映射关系;