SSM和SSH2的区别

导读:本篇文章讲解 SSM和SSH2的区别,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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

一、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://www.bmabk.com/index.php/post/71470.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!