logo头像
Snippet 博客主题

Spring boot 类加载机制

本文于 973 天之前发表,文中内容可能已经过时。

spring boot的类加载机制其实和Spring 没有什么不同,如果有什么不同的,以前需要写一堆的xml配置文件来来申明类和类之间的关系,现在基本上不需要写这么多配置文件了。这说明Spring boot在Spring上还是做了优化了,能让程序员更好更快的开发自己的程序。
那么主要是那个变化省去了我们可以不用去写xml的麻烦。

扫描 -> 注册 - 生成bean

扫描注册类的过程如下:

获取bean的过程

核心类

  • BeanDefinition: Bean的定义类, 和xml里的配置一一对应;
  • BeanFacotry: Bean工厂接口;
  • BeanDefinitionRegistry: BeanDefinition的注册定义接口;
  • DefaultListableBeanFactory: ListableBeanFactory(extends BeanFactory)和BeanDefinitionRegistry的默认实现,提供BeanDefinition注册功能;
  • ApplicationContext: Spring上下文环境;
  • AbstractApplicationContext: 执行refresh()方法;
  • AbstractRefreshableApplicationContext: 提供抽象方法loadBeanDefinitions(DefaultListableBeanFactory beanFactory) 用于加载BeanDefinition.

plantUML 参考资料

https://juejin.im/post/5c072b62e51d4520cf0ed5f8