SSM和SSH2的区别
发布日期:2021-11-11 12:48:07 浏览次数:2 分类:技术文章

本文共 1557 字,大约阅读时间需要 5 分钟。

主要区别从表示层和持久层来讲:

一、SpringMVC与Struts2对比

1、框架机制:Struts2采用Filter(StrutsPrepareAndExecuteFilter)实现,SpringMVC(DispatcherServlet)则采用Servlet实现。

2、拦截机制:

a、Struts2框架是类级别的拦截,每次请求就会创建一个Action,然后通过setter,getter把request数据注入到属性。在接收参数时,可以通过属性接收,这说明属性参数是让所有方法共享的,所以无法用注解或其他方式标识其所属方法了

b、SpringMVC是方法级别的拦截,每个方法基本上是独立的,独享request,response数据。而每个方法同时又和一个url对应,参数的传递是直接注入到方法中的,是方法所独有的。处理结果通过ModeMap返回给框架。SpringMVC默认单例模式,又因为没有共享的属性,所以是线程安全的,如果要改变默认的作用域,需要添加@Scope注解修改。

3、性能方面:SpringMVC基于方法的拦截,有加载一次单例模式bean注入。而Struts2是类级别的拦截,每次请求对应实例一个新的Action,需要加载所有的属性值注入,所以,SpringMVC开发效率和性能高于Struts2。

4、拦截机制:Struts2有自己的拦截Interceptor机制,SpringMVC这是用的是独立的AOP方式,这样导致Struts2的配置文件量还是比SpringMVC大。

5、设计思想:Struts2更加符合OOP的编程思想, SpringMVC就比较谨慎,在servlet上扩展。

6、集成方面:SpringMVC集成了Ajax,使用非常方便,只需一个注解@ResponseBody就可以实现,,而Struts2拦截器集成了Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去,使用起来也相对不方便。

二、mybatis与hibernate的对比

相同点:

(1)Hibernate与MyBatis都是通过SessionFactoryBuider由XML配置文件生成SessionFactory,由SessionFactory 生成Session,由Session来开启执行事务和SQL(Structured Query Language,结构化查询语言)语句。

(2)Hibernate和MyBatis都支持JDBC(Java DataBase Connectivity,java数据库连接)和JTA(Java Transaction API,Java事务API(Application Programming Interface,应用程序编程接口))事务处理。

注:jdbc和jta的主要作用是增强数据访问能力。

(3)基于ORM(Object Relational Mapping, 对象关系映射)思想解决了entity和数据库的映射问题

不同点:

(1)sql方面:mybaits通过mapper.xml维护映射结果,程序员手动编写sql相比hibernate自动生成hql(hibernate sql)更加灵活,sql调优更加容易(hibernate因为更好的封装性,开发效率提高的同时,sql语句调优要更费力,当然可以手动修改sql来优化,但是同时也会影响开发效率);hibernate的hql数据库移植性更好,体现在强壮性。hibernate在级联删除的时候效率低;数据量大, 表多的时候,基于关系操作会变得复杂。

(2)缓存方面:mybatis和hibernate都可以使用第三方缓存,而hibernate相比maybatis有更好的二级缓存机制。

 

 

 

 

 

转载地址:https://blog.csdn.net/Carson073/article/details/83857300 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:基于Jsoup爬虫Demo
下一篇:Java开发PC端移动端同步微信授权登录注意的问题

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月13日 15时59分14秒