前言:
在编程前段时间做项目的时候运用到了这两个比较火的框架,使用过后还是发现两套框架的不同之处的,具体呢还是看下面的详解,首先呢ssh是struts2、spring、hibernate这三个框架,而ssm是springMVC、spring、mybatis这个三个框架,大家都可以看出来,两套框架都使用到了spring,那我们就先来讲解一下spring这个框架
1.spring
1.1 spring是什么及spring的优点
1.1.1 Spring是一个轻量级的IOC和AOP容器框架。
1.1.2 Spring是非侵入式的基于Spring开发的应用一般不依赖于Spring的类。
1.1.3 Spring是个容器,因为它包含且管理应用对象的生命周期和配置,比如对象的创建,销毁,回调等。
1.1.4 Spring提供了对事物的管理。
1.1.5 Spring对主流框架提供了很好的集成支持,比如和hibernate和SpringMVC等框架的集成。
1.2 Sping的IOC和AOP
1.2.1 IOC:Invert of control,控制反转,也成为DI(原来注入)。就是把原来依赖对象的创建和维护交给了Spring容器来管理,应用程序本身不需要负责依赖的创建和维护,其实简单来说就是把原本应该我们去new对象这个操作转到Spring容器中执行。
AOP:面向切面编程,本质就是拦截器,比如项目中的事物和日志就很好的体现了AOP。比如:操作数据库的增删改时都需要开启事物,增删改之后都需要提交事物,这样我们就可以写一个拦截器,底层就是采用动态代理实现前置通知和后置通知,在前置通知开启事物,在后置通知关闭事物,在spring.xml中配置即可,Spring事物的底层管理用到了AOP
1.3 Spring注入的方式有哪些
1.3.1 setter注入:公开的set方法注入
1.3.2 构造注入:有参构造方法注入
1.3.2 接口注入
1.4 如何定义Bean的作用域,作用域之间的区别
定义bean 的作用域,在<bean/>标签中与一个scope的属性,取值有5个
1.4.1 singleton:单例模式(默认),也就是说这种范围不管接收到多少请求,每个容器中只有一盒bean 的实例。
1.4.2 prototype:原型模式(多例模式),与单例模式相反。
1.4.3 request:针对每一个HTTP请求都会产生一个新的bean,并且该bean只在当前的request内有效,请求完成后,bean会失效并被垃圾回收器回收。
1.4.4 session:针对一个HTTP请求都会产生一个新的bean,并且该bean只在当前session中有效,session过期后,bean也会随之失效。
1.4.5 Global session:global session与portlet应用相关,当你应用部署在Portlet容器中工作时,如果你想让所有的portlet公用全局变量,就需要储存在global session中。
1.5 什么是Spring的自动装配?并解释一下自动装配的各种模式。
Spring的自动装配:无序在Spring配置文件中描述javabean之间依赖关系,IOC容器会自动建立javabean之间的关联关系。
1.5.1 根据属性名称自动装配,autowire="byName"
1.5.2 根据属性类型自动装配,autowire="byType"
1.5.1 根据构造方法自动装配,autowire="construtor"
1.6 在spring中注入null和空字符
1.6.1 注入null:<property name="name"><null/></property>
注入空字符:<property name="name" value=""></property>