spring是一个轻量级的IOC(控制反转)和AOP(面向切面)的容器框架;
1.特点:轻量(从大小和开销量两方面都是轻量的),控制反转(通过IOC促进了松耦合,具体来说就是在spring中创建被调用者的工作不再由调用者来完成),面向切面,容器(spring包含并管理应用对象的配置和生命周期);框架(将简单的组件配置,组成复杂的应用)
总的来说:核心技术就是IOC和AOP 作用在数据访问层 可以整合其他开源的框架
2.好处:
(1).使用spring的IOC容器,将对象之间的依赖关系交给spring,降低组件之间的耦合性,让我们更专注于逻辑
(2).可以提供众多服务,事务管理等
(3).AOP的很好支持,方便面向切面编程
(4).对主流的框架提供了很好的集成支持
(5).spring DI机制降低了业务对象替换的复杂性
(6).spring属于低侵入,代码污染极低
(7).spring的高度可开放性,并不强势依赖于spring;咱们用的时候可以自由选择spring框架的部分或全部。
3.spring的核心类(bean的调用方式)
beanFactory:创建一个新的实例,可以实现单例模式;
beanWrapper:提供同一的get及set方法
ApplicationConetext:提供框架的实现,包括BeanFactory的所有功能
4.spring常用类和接口有哪些
A.ApplicationContextAware接口:当一个类需要获取applicationContext实例,需要让该类实现这个接口;
B.applicationListener接口:当需要监听自定义事件时,可以新建一个applicationListener接口的类,并将该类配置到spring容器中
5.spring事务的原理:
事务管理的方式:声明型和编程型 推荐使用声明事务
声明型事务管理的优势:代码中无需关于关注事务逻辑,让Spring声明式事务管理负责事务逻辑,声明式事务管理无需与具体的事务逻辑耦合,可以方便地在不同事务逻辑之间切换。
6.什么是IOC,什么是DI
区别:IOC是个更宽泛的概念,DI是更具体的。 DI是从应用程序的角度在描述,应用程序依赖容器创建并注入它所需要的外部资源;IOC从容器的角度去描述,由容器反向的向程序注入应用程序所需要的外部资源
7.bean注入属性的几种方式
bean:Spring容器初始化对象
1、接口注入
2、构造器注入
3、setter方法注入
8.AOP的作用是什么
面向切面编程提供另一种角度来思考程序结构,通过这种方式弥补了面向对象编程的缺点,除了类以外,它还提供了切面。
允许用户自定义切面,AOP的对spring的一种增强
9.介绍一下Spring框架中bean的生命周期和作用域
1、在配置文件中定义;2、两种初始化方式(1)在配置文件中指定init-method 属性来完成(2)实现一个org.springframwork.beans.factory.InitializingBean接口
3、三种方式调用bean的实例 4、bean销毁 (1)配置文件指定destroy-method属性 (2)B.实现org.springframwork.bean.factory.DisposeableBean接口
五大作用域:
1、singleton:IOC容器中只会存在一个共享实例,并且对所有BEan的请求,只要ID相匹配,就会返回同一实例
2、prototype:每次对该BEan的请求,都会创建一个新的实例
3、request:一个HTTP请求中,一个bean定义对应一个实例;该作用 域仅在基于web的Spring ApplicationContext情形下有效。
4、session:一个HTTP Session中,一个bean定义对应一个实例;该作用 域仅在基于web的Spring ApplicationContext情形下有效。
5、global session:在一个全局的HTTP Session中,一个bean定义对应一个实例。典型情况下,仅在使用portlet context的时候有效。该作用域仅在基于 web的Spring ApplicationContext情形下有效。