spring两大核心之一 ioc(控制反转)
1.spring简介
1.1简介
-
一款开源的轻量级框架
-
为了解决程序开发日渐增长的复杂度和时间成本
-
极大的提高了程序中对对象的创建管理与运用
2.spring两大核心之一 ioc(控制反转)
2.1 ioc的本质
控制反转的本质是一种编程思想,就是将原本由程序自己去创建对象,交给ioc容器去创建。他的底层实现是通过工厂模式使用反射机制,将对象创建好放入一个map容器里面,然后在使用的时候拿出来。
2.2 ioc创建对象的方式
通过静态工厂模式创建对象
通过构造方法创建对象
-
通过下标创建对象
-
通过参数名创建对象
-
通过参数类型创建对象
他们通过创建bean的实例,然后给bean的参数赋值,达到设置对象属性的目的。
2.3 bean的作用域
-
单例模式——(spring的默认机制)
-
原型模式——多例模式
-
request
-
session
-
application
-
websocket
2.4 bean的生命周期
-
BeanDefinition 注册阶段 - registerBeanDefinition
-
BeanDefinition 合并阶段 - getMergedBeanDefinition
-
-
Bean 实例化阶段 - createBeanInstance
-
Bean 实例化后阶段 - populateBean 再调用 postProcessAfterInstantiation
-
Bean 属性赋值前阶段 - populateBean
-
Bean 属性赋值阶段 - populateBean
-
Bean Aware 接口回调阶段 - initializeBean
-
Bean 初始化前阶段 - initializeBean
-
Bean 初始化阶段 - initializeBean
-
Bean 初始化后阶段 - initializeBean
-
Bean 初始化完成阶段 -preInstantiateSingletons
-
Bean 销毁前阶段 - destoryBean
-
Bean 销毁阶段 - destoryBean
-
注册阶段
-
合并阶段
-
实例化阶段
-
属性赋值阶段
-
接口回调阶段
-
初始化阶段
-
销毁阶段。
2.5依赖注入的方式
ioc创建的对象通过依赖注入的方式进行关联
-
构造器注入
-
set方式注入
-
拓展方式注入
2.51 拓展注入方式
-
p命名空间注入,本质是set属性注入
-
c命名空间注入,本质是构造器方式注入
2.52命名空间注入的本质
通过添加xml文件加入第三方约束,配置bean进行对象的注入管理