spring 是一个框架 是整个生态
spring springmvc springboot springcloud
1、
spring ioc aop 基石 1、bean声明周期
2、循环依赖
3、动态代理
4、事务的实现机制
5、factorybean 和beanfactory
6、后置处理器bpp bfpp
7、设置模式
refresh13 把这13个方法看懂spring就搞明白了
2、
xml
<bean id= person class=mashibing.bean.person> <propery name=id value=1> <constructor-org name-name value=zhangsan> </bean>
3、
使用bean
记载解析 对象的描述信息bean定义 实例化 获取
4、
IOC container 是方法bean对象的存储 使用map 来存
bean1 bean2 bean3……
如果要把里面的数据取出来 是用bean 对象 是 使用map 对象来进行存储的
k-v key-value 管理一个bean 管理包含 bean对象的创建 声明周期 一个业务框架
5、xml 或者注解 bean的描述信息 bean的定义信息 bean定义 beanDefinition 处理文件解析 反射对象 实例化 new 必须使用
实例化 反射的过程
Class class = class.forname
Class class = 对像.getclass
Class clazz =类名.class
construcor ctor =
6、springboot 使用 properties yaml解析文件
7、ioc容器需要有 beanfactory.java文件中 是一个root 接入接口
8、实例化 在堆中 开辟一块控件对象的属性只 都是默认值
初始化 设置属性值 赋值 填充属性 调用方法 init-method 初始话方法
实例化 》 填充属性》 实验aware接口方法 》 before》 调用init方法 》 after》 beanpostProcess
aware 是感知的意思 bean对象包含 普通对象(用户自定义) 容器对象(spring 框架内部调用)
aware 如果我需要通过普通对象获取容器对象
通过一系列的aware接口实现 environment 环境对象 、 applicationContext上下文对象 、 ClassLoader
set设定属性值
before after beanpostProcessor
Aop动态代理 jdk 和cglib
看源码 大胆猜见名知意 自动 代理的创建器
9、debug 验证源码
观察这模式 监听器 监听时间 广播器
10、做准备工作
创建 beanfactory beanDefinition 注册beanFactory中
register 属性值赋值
设置
protected void postfactory invokebeanpostFactorProcessors(beanfactor实例化操作)
register 注册调用执行
construct是构造器 实例化对象 实例化