refresh
2023-02-15 01:40:30 7 举报
refresh,一个简单而又充满力量的词汇。它代表着重新开始、焕发活力和恢复精神的过程。当我们感到疲惫不堪时,refresh就像一股清泉,为我们注入新的生命力,让我们重新振作起来。它可以是一次深呼吸,让紧张的神经得到放松;也可以是一杯清凉的水,滋润干涸的喉咙;还可以是一段美妙的音乐,抚慰我们受伤的心灵。在忙碌的生活中,我们需要时常refresh自己,以保持最佳的状态,迎接每一个新的挑战。无论是在工作上还是在生活中,refresh都是我们前进道路上不可或缺的伙伴。让我们一起学会珍惜这个美好的词汇,让它成为我们生活中的一道亮丽风景线。
作者其他创作
大纲/内容
instantiateBean()回调方法
initLifecycleProcessor()初始化生命周期处理器从beanFactory拿
registerListeners();注册监听器
invokeBeanFactoryPostProcessors(beanFactory);执行BeanFactory后置处理器
refresh()
populateBean ()依赖注入
this.webServer = factory.getWebServer(getSelfInitializer());
getLifecycleProcessor().onRefresh()
ServletWebServerApplicationContextcreateWebServer()
doGetBean()createBean()doCreateBean()
FactoryBean接口实例化getObject()
自定义一个扫描器(原扫描器class不能为接口)
getBean
ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();初始化 BeanFactory、注册 Bean、加载 Bean到span style=\
监听通过泛型发布事件
finishBeanFactoryInitialization(beanFactory);完成beanFactory初始化
@Import(MapperScannerRegistrar.class)public @interface MapperScan String[] basePackages() default {}// 包路径
LifecycleProcessor(生命周期处理器)
BeanFactoryPostProcessor是Spring提供的扩展机制,用于在所有的Bean配置信息解析完成后修改Bean工厂信息spring会扫描注册
finishRefresh完成启动
通过mapperFactoryBean(原为beanClass)转换为Object,即可接入spring的createBean方法
refreshBeanFactory()
mybatis整合进IOC其中MapperScannerConfigurer实现了span style=\
startBeans,遍历所有的生命周期bean组启动start
new Jetty()
Reader注册读取bean
BeanFactory.classResourceLoaderspan style=\
扫描出BeanDefintion接口
registerBeanPostProcessors(beanFactory);注册bean后置处理器
组合注解,组合@Import注解,通过@Import注解导入了MapperScannerRegistrar类
循环依赖
两个循环遍历,1.把Spring通过硬编码定义的监听器注册到容器中2.把我们自定义的监听器注册到容器中(META-INF/spring.factories文件)
prepareBeanFactory(beanFactory);设置 BeanFactory 的类加载器,添加几个 BeanPostProcessor,手动注册几个特殊的 bean
loadBeanDefinitions(beanFactory)加载到beanFatory中
createBeanInstance ()创建 Bean 实例
onRefresh()初始化特殊的bean
new Tomcat()
创建DefaultListableBeanFactory工厂(继承、实现所有beanFatory)
BeanDefinition种类AnnotatedGenericBeanDefinition:通过@Import注解引入的BeanScannedGenericBeanDefinition:通过@Component扫描包引入的BeanConfigurationClassBeanDefinition:通过@Bean注解引入的BeanRootBeanDefinition:Spring内部使用,如生产Bean时将其他BeanDefinition转成RootBeanDefinition
prepareRefresh()刷新前准备
0 条评论
下一页