海风影像馆 海风影像馆
首页
扎根医疗
学习笔记
技术实战
项目管理
影像空间
驴行天下
阳明心学
  • 学习方法
  • 心情杂货
  • 实用技巧
  • 友情链接
  • 分类
  • 标签
  • 归档

知行旅人

生有热烈,藏于俗常。
首页
扎根医疗
学习笔记
技术实战
项目管理
影像空间
驴行天下
阳明心学
  • 学习方法
  • 心情杂货
  • 实用技巧
  • 友情链接
  • 分类
  • 标签
  • 归档
  • 编程笔记

  • 源码阅读

    • 并发编程

    • 框架

      • Spring
        • 1 核心流程
      • SpringBoot启动流程
      • Nacos注册中心
      • Nacos配置中心
  • 技巧备忘

  • 问题排查

  • 安装部署

  • 博客搭建

  • 技术实战
  • 源码阅读
  • 框架
zhixinglvren
2022-10-20
目录

Spring

# 1 核心流程

AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(TestConfig.class);
1
  public AnnotationConfigApplicationContext(Class<?>...componentClasses){
        this();

        register(componentClasses);

        refresh();
  }
1
2
3
4
5
6
7
1.调用构造函数 this();
主要做的事情:
1)初始化BeanFactory:this.beanFactory = new DefaultListableBeanFactory()
2)初始化BeanDefinition配置类读取器(AnnotatedBeanDefinitionReader)
和扫描器(ClassPathBeanDefinitionScanner scanner)(此处scanner没什么用处,用于外部手动调用。后续会重新new一个scanner去扫描bean定义)

初始化BeanDefinition配置类读取器的时候重点做了2件事
1)初始化ConfigurationClassPostProcessor后置处理器(父类为:BeanFactoryPostProcessor)
此时只是BeanDfinition,后续在refresh时根据BeanDefinition生成实例。
2)初始化其他内置相关BeanDefinition


2. register(componentClasses); 将传入的配置类进行注册,注册为BeanDefinition
   配置类有两种情况:
   1)带有@Configuration注解的配置类
   2)带有@Component,@ImportResouce,@Service,@ComponentScan等注解的配置类
- 在Spring内部把前者称为Full配置类,把后者称为Lite配置类


3.refresh(); IOC容器刷新接口
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

spring

上次更新: 2022/11/24, 17:59:25
ThreadPoolExecutor线程池
SpringBoot启动流程

← ThreadPoolExecutor线程池 SpringBoot启动流程→

最近更新
01
Linux常用指令
11-24
02
GitHub高级搜索技巧
11-24
03
散列表
11-09
更多文章>
Theme by Vdoing | Copyright © 2020-2023 知行旅人 | MIT License | 粤ICP备20036515号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式