摘要: aop是ioc的一个扩展功能,先有的ioc,再有的aop, 只是在ioc的整个流程中新增的一个扩展点而已:BeanPostProcessor 总: aop概念, 应用场景【记录日志,权限控制,缓存优化,监控方法运行时间】,动态代理 分 bean的创建过程中有一个步骤可以对bean进行扩展实现,aop 阅读全文
posted @ 2022-05-23 23:35 徽亭小镇 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 相同点:都是用来创建bean对象的 不同点:使用BeanFactory创建对象的时候, 必须要遵循严格的生命周期流程,太复杂了,,如果想要简单的自定义某个对象的创建, 同时创建完成的对象想交给spring来管理, 那么就需要实现 FactroyBean接口了 isSingleton:是否是单例对象 阅读全文
posted @ 2022-05-23 23:24 徽亭小镇 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 什么是循环依赖的问题:A 依赖B ,B依赖A 先说明bean的创建过程: 实例化。 初始化(填充属性) 1.先创建A对象 实例化A对象, 此时A对象中的b属性为空,填充属性b 2.从容器中查找B对象, 如果找到了,直接赋值不存在循环依赖问题(不通),找不到直接创建B对象 3.实例化B对象, 此时B对 阅读全文
posted @ 2022-05-23 23:15 徽亭小镇 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 1.实例化bean, 通过反射的方式生成对象 2.填充bean属性,poplateBean() 循环依赖【三级缓存】 3.调用aware接口相关方法 invokeAwareMethod 完成 beanName beanFactory相关方法 4.调用BeanPostProcessor前置处理方法 5 阅读全文
posted @ 2022-05-23 22:22 徽亭小镇 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 1.先通过createBeanFactory 创建一个bean工厂【defaultableBeanFactory】 2.开始循环创建对象,因为bean默认都是单列的,优先通过getBean doGetBean从容器中查找 3.若找不到,通过createBean doCreatebean 创建 ,一般 阅读全文
posted @ 2022-05-23 22:10 徽亭小镇 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 控制反转:原来对象都是由使用者来控制,有了spring之后就交给spring来控制。一样的有个DI,依赖注入,把对应的属性注入到对应的对象中,@Autoware populatebean 完成属性值的注入。 容器:存储对象,一般使用map来存,放到spring的三级缓存 singletonObjet 阅读全文
posted @ 2022-05-23 22:04 徽亭小镇 阅读(92) 评论(0) 推荐(0) 编辑