spring
spring 是什么? spring 是框架 是一个生态 springboot springcloud ioc (思想) :控制反转 原来我们需要一个对象的时候需要自己去new 现在由spring容器替我们创建 我们需要直接去容器中拿就可以了 Di(手段):依赖注入 把属性进行注入的操作 IOC 容器 :存放对象 或者说bean 要不要生成? 要 先在xml中

1 加载 2 解析 3 封装bean 4 实例化 5 放到容器中 6 从容器中获取
容器存放是map存放 因为在ac.getBean("xxx") 需要传入需要获取对象的key 才能找到 对应的value key:String v:obj key:Class v obj 因为可以根据byname 也可以根据byType去容器中去获取对象 三级缓存 k:String v:ObjFactory 当解析xml文件 时 其实就是一堆字符串 spring 会将字符串封装成对象 k:string v:beanDefinition 存放bean的定义信息

在ioc 是容器 在容器中会有一系列对象 在获取对象之前 需要获取到xml配置信息
或者说bean定义信息 xml properties yml
通过beanDefinition读取 由beanDefinitionReader生成的解析文件
当ioc容器拿到bean的定义信息后就可以实例化了
1 new
2反射 spring用的是反射 因为反射一个获取到这个类的所有属性和方法
springbean----》scope-----1 singleton 默认单例 多次复用 2 prototype 每次创建一个新的对象 3 request 4 session

在bean定义信息到bean的实例化之间 还会经过很多的bean增强器




创建对象
实例化 在堆内存中开辟一块空间 用于对象的属性值为默认值 先执行构造器
初始化 给属性设置值 1 填充属性 1调用set方法 往里面设置值
2填充Awre接口属性
2执行初始化方法-init-method

Awre接口到底什么作用?
当容器创建bean对象 在进行具体操作的时候 如果需要容器的其他对象,此时可以将对象实现Awre接口,来满足当前的需要
初始化环节


在不同的阶段处理不同的工作 应该怎么办?
观察者模式; 监听器 监听事件 多播器
aop


浙公网安备 33010602011771号