1.
ssh | ssm |
---|---|
Struts+Spring+hibernate | Spring+SpringMVC+MyBatis |
2.Spring
是一个轻量级的ioc与aop容器框架,
优点:
- 对主流框架有很好的集成支持,如Hibernate、SpringMVC等框架
- 低侵入式的,基于Spring开发一般不依赖于它的类。
- Spring是个容器,因为它包含并且管理应用对象的生命周期和配置,比如对象的创建、销毁、回调等对事务的管理
3.aop与ioc
aop: 面向切面编程(Aspect Oriented Programming,简称:AOP),本质就是拦截器,项目中的日志功能很好的体现了aop,可以很好的记录用户、管理员的操作便于管理
简单来说三点构成一线,线构成面 ,点就是开启事务 ,线就是增删改,面就是关闭事务
操作数据库的增删改之前,都需要开启事务,增删改之后,都需要提交事务,这样我们就可以写一个拦截器,底层就是采用动态代理实现前置通知和后置通知,在前置通知中开启事务,在后置通知中提交事务,在spring.xml中配置通知即可,spring的事务管理底层就用到了AOP
**ioc:**控制反转,比如在使用spring的时候我们会把new 对象的操作交给spring管理,这就是ioc。
例子: 在一个项目中,如果有100个人请求同一个方法,这个方法会被调用100次,那类中new的变量也会被创建100次,这是相当耗费资源的;而IOC底层对这种对象的创建使用的是单例模式,这样就避免了前面所说的资源损耗。
注入方式
set注入:
为需要控制反转的变量提供set方法,在spring配置文件中使用标签配置
构造注入:
为需要控制反转的变量提供构造函数,在spring配置文件中使用标签配置
接口注入:
具有侵略性,必须要继承才能用。
4:
ssh与ssm主要区别
Struts2与springmvc的区别
struts2 | springmvc |
---|---|
基于类,每次发一次请求都会实例一个Action | 基于方法设计 |
StrutsPreparaedAndExcuteFiter | dispatcherservlet |
开发效率SpringMVC比Struts2高 | 支持JSR303,处理ajax请求更加方便 |
OGNL表达式使页面的开发效率更高些 | 页面开发效率相对低些 |
2.hibernate与mybatis的区别
hibernate | mybatis |
---|---|
重量级 | 轻量级 |
全自动化 | 半自动化 |
hql(但也可以使用sql,但违背了hibernate的初衷) | 手动编写SQL,可以避免不需要的查询,提高系统性能 |
完整的ORM框架,开发过程中,无需过多关注底层实现,只需要管理对象即可 | 需要自行管理映射关系 |