ssh跟ssm的区别
SSH跟SSM的区别
SSH指的是:spring+Struts+hibernate;而SSM指的是:spring +SpringMVC + MyBatis。
1、Spring是是开源框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,ibatis框架等组合使用。
1)IoC(Inversion of Control)控制反转,对象创建责任的反转,在spring中BeanFacotory是IoC容器的核心接口,负责实例化,定位,配置应用程序中的对象及建立这些对象间的依赖。XmlBeanFacotory实现BeanFactory接口,通过获取xml配置文件数据,组成应用对象及对象间的依赖关系。Spring中有三种注入方式,一种是set注入,一种是接口注入,另一种是构造方法注入。
2)AOP面向切面编程
aop就是纵向的编程,如果业务1和业务2都需要一个共同的操作,与其往每个业务中都添加同样的代码,不如写一遍代码,让两个业务共同使用这段代码。
spring中面向切面变成的实现有两种方式,一种是动态代理,一种是CGLIB,动态代理必须要提供接口,而CGLIB实现是有继承。
Spring框架优点
1)轻量级的容器框架没有侵入性
2)使用IoC容器更加容易组合对象直接间关系,面向接口编程,降低耦合
3)Aop可以更加容易的进行功能扩展,遵循ocp开发原则
4)创建对象默认是单例的,不需要再使用单例模式进行处理
2、SpringMVC与Struts :
1)两者有个共同之处,那就是两者都数据javaweb层的开发框架,都是mvc模式的的经典产品,都实现了页面分离控制的功能,但是两者之间是有区别的。
2)在开发中,人们更愿意使用SpringMVC而不是Struts。因为SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。在扩展和灵活性上更胜一筹。
3)Struts的优势在于静态注入,插件机制和拦截器链,但是struts存在漏洞,经常会被作为攻击点进行冲击。相比更加安全简单的SpringMVC,开发者渐渐开发放弃了它。
3、Hibernate 与MyBatis:
1)Hibernate与Mybatis都是流行的持久层开发框架,一句话概括:MyBatis 简单易上手;
2)hibernate成熟,市场推广率高。
3)MyBatis可以进行更为细致的SQL优化,可以减少查询字段。
4)MyBatis容易掌握,而Hibernate门槛较高。
5)更重要的是,mybatis提供了对应各种用途、功能的插件,而hibernate在这一方面是远远比不上mybatis的。
6)Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。
7)Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。
8)Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。
9)Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。
10)但是hibernat缺点很明确,如果涉及到多张关联表的调用时:
1. 多表关联等比较复杂,使用的成本并不低;
2. 效率比较低,在大型项目中很少会使用到它,因为sql都是自动生成的,不太好进行人工的优化。
ssh跟ssm的区别的更多相关文章
- SSH和SSM的区别
一怒成仙 博客园 首页 新随笔 联系 管理 订阅 随笔- 54 文章- 1 评论- 0 SSH(Struts,Spring,Hibernate)和SSM(SpringMVC,Spring,M ...
- [转]关于SSH与SSM的组成及其区别
前言 当下SpringBoot盛行,咱再聊聊SpringBoot盛行之前的框架组合,当做复习巩固哈. 在聊之前,得先说说MVC,MVC全名是Model View Controller,是模型(mode ...
- 关于SSH与SSM的组成及其区别
前言 当下SpringBoot盛行,咱再聊聊SpringBoot盛行之前的框架组合,当做复习巩固哈. 在聊之前,得先说说MVC,MVC全名是Model View Controller,是模型(mode ...
- SSH和SSM对比总结
当下流行的两种企业开发MVC开源框架,是我们Java程序猿必备知识能力.MVC,即模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界 ...
- [转]SSH和SSM对比总结
原文地址:https://blog.csdn.net/peak_and_valley/article/details/52925032 当下流行的两种企业开发MVC开源框架,是我们Java程序猿必备知 ...
- SSH和SSM的比较
当下流行的两种企业开发MVC开源框架,是我们Java程序猿必备知识能力.MVC,即模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界 ...
- Java Web学习总结(28)——Java Web项目MVC开源框架SSH和SSM比较
SSH和SSM定义 SSH 通常指的是 Struts2 做控制器(controller),spring 管理各层的组件,hibernate 负责持久化层. SSM 则指的是 SpringMVC 做控制 ...
- SSH和SSM对比(一)
当下流行的两种企业开发MVC开源框架,是我们Java程序猿必备知识能力.MVC,即模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界 ...
- Java Web J2EE下的两大框架SSH和SSM对比
当下流行的两种企业开发MVC开源框架,是我们Java程序猿必备知识能力.MVC,即模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界 ...
随机推荐
- map-reduce 优化
map阶段优化 参数:io.sort.mb(default 100) 当map task开始运算,并产生中间数据时,其产生的中间结果并非直接就简单的写入磁盘. 而是会利用到了内存buffer来进行已经 ...
- 在CentOS 6.4中支持exfat格式的U盘
CentOS系列一直没有默认支持使用exfat格式的大容量U盘. 可以通过添加fuse-exfat模块来支持.根据网上资料,整理如下: 1.下载fuse-exfat支持软件: exfat支持是通过fu ...
- 解决mysql开启GTID主从同步出现1236错误问题
解决mysql开启GTID主从同步出现1236错误问题 最近遇到mysql开启gtid做复制时,从库出现1236错误,导致同步无法进行,本文就这问题记录下处理步骤,有关gtid知识在这里不做介 ...
- 两个项目之间通过 RestTemplate 进行调用
A服务发出请求: @RequestMapping("/jqgridjsondata.json") @ResponseBody public String jqgridJsonDat ...
- 虚拟机安装以及PCL的配置(2)
那我们无论在虚拟机还是在双系统的Ubuntu环境下都是一样的安装过程 我们使用快捷键“ctrl+alt+T”,来打开一个命令窗口如下图 比如我们在命令窗口下输入ls 我们会看到在主目录下的所有文件 下 ...
- node学习笔记1——配置node环境变量及执行node文件
最近在学习node,今天说一下node的变量环境配置.虽然网上有说,最新版的已经不需要配置这个东东了,但是我的电脑还是得配置.闲话少扯,进入正题: 1.安装node,这步就略过了.就是下载 node, ...
- java BlockingQueue 用法
在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题.通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利.本文 ...
- [J2EE]web.xml各个版本模板
J2EE1.3 Servlet2.3 JSP1.2 <?xml version="1.0" encoding="ISO-8859-1"?> < ...
- 贝塞尔曲线.简单推导与用opengl实现动态画出。
在opengl中,我们可以用少许的参数来描述一个曲线,其中贝塞尔曲线算是一种很常见的曲线控制方法,我们先来看维基百科里对贝塞尔曲线的说明: 线性贝塞尔曲线 给定点P0.P1,线性贝塞尔曲线只是一条两点 ...
- Python模拟Linux的Crontab, 写个任务计划需求
Python模拟Linux的Crontab, 写个任务计划需求 来具体点 需求: 执行一个程序, 程序一直是运行状态, 这里假设是一个函数 当程序运行30s的时候, 需要终止程序, 可以用python ...