目录
一、spring的概念
1、什么是spring?
一个分层的IOC和AOP容量框架,spring的核心就是控制反转(IOC)和面向切面(AOP)
优点:
- spring就是一个大工厂,将对象的创建和依赖关系的维护都交给spring管理,这就是IOC
- 方便集成各种优秀框架,Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts2、Hibernate、MyBatis等)的直接支持
- Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能
2、七大模块是什么?
- Spring Context:继承BeanFactory,提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等);
- Spring Core:核心类库,所有功能都依赖于该类库,提供IOC和DI服务;
- Spring AOP:AOP服务,减弱代码的功能耦合;
- Spring Web:提供了基本的面向Web的综合特性,提供对常见框架如Struts2的支持,Spring能够管理这些框架,将Spring的资源注入给框架,也能在这些框架的前后插入拦截器;
- Spring MVC:提供面向Web应用的Model-View-Controller,即MVC实现。
- Spring DAO:对JDBC的抽象封装,简化了数据访问异常的处理,并能统一管理JDBC事务;
- Spring ORM:对现有的ORM框架的支持;
3、spring中用到了哪些设计模式
- 工厂模式: spring中的BeanFactory就是简单工厂模式的体现,根据传入唯一的标识来获得bean对象;
- 单例模式: 提供了全局的访问点BeanFactory;
- 代理模式: AOP功能的原理就使用代理模式(1、JDK动态代理。2、CGLib字节码生成技术代理。)
- 装饰器模式: 依赖注入就需要使用BeanWrapper;
- 观察者模式: spring中Observer模式常用的地方是listener的实现。如ApplicationListener。
- 策略模式: Bean的实例化的时候决定采用何种方式初始化bean实例(反射或者CGLIB动态字节码生成)
二、Bean
1、生命周期(四个)
- 实例化bean,由IOC容器创建,
- 设置对象属性,DI
- 初始化,执行我们自定义的初始化方法
- 销毁,destroy()
2、bean的作用域
singleton(单例)、prototype(原型)、request、session、global session
默认是单例,指一个JVM进程中只能创建一个对象,原型作用域中,能创建多个对象
三、IOC
1、介绍
IOC是指将创建对象的权利以及管理bean生命周期的责任交给spring,在创建对象的过程中,spring会对对象的属性进行设置,这个过程是依赖注入(DI)
2、IOC的注入方式
(1)构造器注入
(2)set注入
(3)注解注入
(4)工厂注入(静态工厂、实例工厂)
3、IOC容器
IoC容器负责对象的搭建,初始化一系列工作