spring
2022-05-18 16:31:35 1 举报
spring框架执行流程
作者其他创作
大纲/内容
json
invokeInitMethods
populateBean
容器对象属性赋值
bean定义信息BeanDefinition
BeanPostProcessor:before
抽象接口定义读取配置文件的规范
Aware接口
afterPropertiesSet
<bean id =datasource class=com.alibaba.druid.pool.DruiddataSource/><property name= username value =${jdbc.username}/></bean>
如果我们需要在bean对象的创建过程中,详细;了解每一个步骤完成的进度我们应该怎么做?在不同的阶段要做不同的处理工作,应该怎么办?
BeanFactoryPostProcessor
yaml
解析@Import
给用户最后一次机会来进行赋值和调用操作
SpringBoot自动装配
增强器
属性完成赋值操作
AOP
BeanPostProcessor 执行过程
后置处理器
Constructor ctor = clazz.getDeclareConstructor();Object obj = ctor.newInstance();
否
先获取Class对象Class clazz =Class.forName(\"完全限定名\");Class clazz =对象.getClass();Class clazz =类.class;Constructor ctor =class.getDeclareConstructor();Object obj =ctor.newInstance();
cglib
执行后置处理方法
new反射
在堆中开辟一块空间,属性都是默认值
自定义属性填充
是否实现了InitializingBean接口
env
执行初始化调用方法
properties
1.bean的生命周期?2.循环依赖?3.FactoryBean和beanFactory4.ApplicationContext和BeanFactory区别
@PostContruct@PreDestroy
执行前置处理方法
BeanFactoryRegistryPostProcessor
BeanFactory
BeanPostProcessor
动态代理
jdk
实例化bean
实例化:分配内存,属性为默认值
完整的bean对象
ConfigurationClassPostProcessor
实例化过程包括
调用具体的初始化方法
使用对象
扩展
Environment
Refresh()
检查Aware相关接口:容器对象属性赋值
调用invokeInitMethods
为了方便使用,在容器创建的时候会提前加系统的相关属性加载到StandarEnvironment对象中,方便后续使用
XML
初始化bean执行init方法
PostProcessor
invokeAwareMethods
BeanDefinitionReader
初始化
实例化
是
aop功能就是BeanPostProcessor下的一个子类实现,生成代理对象
BeanPostProcessor:after
关闭容器时:销毁对象
解析@ComponentScan
解析@ImportResource
观察者模式:监听器,监听事件
属性填充,赋值
IOC Container
0 条评论
下一页